# File generated with docstub

import xarray as xr

from .linalg import (
    cholesky,
    cond,
    det,
    diagonal,
    eig,
    eigh,
    eigvals,
    eigvalsh,
    inv,
    matrix_power,
    matrix_rank,
    matrix_transpose,
    norm,
    qr,
    slogdet,
    solve,
    svd,
    trace,
)

class LinAlgAccessor:
    def __init__(self, xarray_obj) -> None: ...
    def matrix_transpose(self, dims) -> None: ...
    def matrix_power(self, n, dims=..., **kwargs) -> None: ...
    def cholesky(self, dims=..., **kwargs) -> None: ...
    def qr(self, dims=..., *, mode=..., out_append=..., **kwargs) -> None: ...
    def svd(
        self,
        dims=...,
        *,
        full_matrices=...,
        compute_uv=...,
        hermitian=...,
        out_append=...,
        **kwargs,
    ) -> None: ...
    def eig(self, dims=..., **kwargs) -> None: ...
    def eigh(self, dims=..., *, UPLO=..., **kwargs) -> None: ...
    def eigvals(self, dims=..., **kwargs) -> None: ...
    def eigvalsh(self, dims=..., *, UPLO=..., **kwargs) -> None: ...
    def norm(self, dims=..., *, ord=..., **kwargs) -> None: ...
    def cond(self, dims=..., *, p=..., **kwargs) -> None: ...
    def det(self, dims=..., **kwargs) -> None: ...
    def matrix_rank(self, dims=..., *, tol=..., hermitian=..., **kwargs) -> None: ...
    def slogdet(self, dims=..., **kwargs) -> None: ...
    def trace(self, dims=..., *, offset=..., dtype=..., out=..., **kwargs) -> None: ...
    def diagonal(self, dims=..., *, offset=..., **kwargs) -> None: ...
    def solve(self, db, dims=..., **kwargs) -> None: ...
    def inv(self, dims=..., **kwargs) -> None: ...

class EinopsAccessor:
    def __init__(self, xarray_obj) -> None: ...
    def rearrange(self, pattern, pattern_in=..., **kwargs) -> None: ...
    def reduce(self, pattern, reduction, pattern_in=..., **kwargs) -> None: ...
