from typing import Any, Literal
from typing_extensions import Self

from sympy.core.function import UndefinedFunction
from sympy.matrices.expressions.matexpr import MatrixExpr

def normalize(i, parentsize) -> tuple[Any | Literal[0], Any, Any | Literal[1]]: ...

class MatrixSlice(MatrixExpr):
    parent = ...
    rowslice = ...
    colslice = ...
    def __new__(cls, parent, rowslice, colslice) -> MatrixSlice | Self: ...
    @property
    def shape(self) -> tuple[Any | type[UndefinedFunction], Any | type[UndefinedFunction]]: ...
    @property
    def on_diag(self) -> Any: ...

def slice_of_slice(s, t) -> tuple[Any, Any, Any]: ...
def mat_slice_of_slice(parent, rowslice, colslice) -> MatrixSlice: ...
