import { ComplexDecimal } from './complex-decimal';
export type dimRange = {
    start: number;
    stride: number;
    stop: number;
};
export type ComplexDecimalRange = {
    start: ComplexDecimal;
    stride: ComplexDecimal;
    stop: ComplexDecimal;
};
export declare class MultiArray {
    dim: Array<number>;
    array: Array<Array<ComplexDecimal>>;
    static functions: {
        [name: string]: Function;
    };
    constructor(shape?: number[], fill?: ComplexDecimal);
    static firstRow(row: Array<any>): MultiArray;
    static appendRow(matrix: MultiArray, row: Array<any>): MultiArray;
    static unparse(tree: MultiArray, that: any): string;
    static unparseML(tree: MultiArray, that: any): string;
    static evaluate(tree: MultiArray, that: any, fname: string): MultiArray;
    static isThis(obj: any): boolean;
    static isRange(obj: any): boolean;
    static mat_0x0(): MultiArray;
    static arrayEqual(left: Array<number>, right: Array<number>): boolean;
    static isSameDim(left: MultiArray, right: MultiArray): boolean;
    static number2matrix1x1(value: ComplexDecimal | MultiArray): MultiArray | undefined;
    static clone(M: MultiArray): MultiArray;
    static toLogical(M: MultiArray): ComplexDecimal;
    static map(M: MultiArray, f: Function): MultiArray;
    static expandRange(startNode: ComplexDecimal, stopNode: ComplexDecimal, strideNode?: ComplexDecimal | null): MultiArray;
    static testIndex(k: ComplexDecimal, bound: number, matrix: MultiArray, input: string): number;
    static oneRowToDim(M: Array<ComplexDecimal> | MultiArray): Array<number>;
    static subMatrix(temp: MultiArray, id: string, argumentsList: Array<any>): any;
    static mul(left: MultiArray, right: MultiArray): MultiArray;
    static scalarOpMultiArray(op: 'add' | 'sub' | 'mul' | 'rdiv' | 'ldiv' | 'pow' | 'lt' | 'lte' | 'eq' | 'gte' | 'gt' | 'ne' | 'and' | 'or', left: ComplexDecimal, right: MultiArray): MultiArray;
    static MultiArrayOpScalar(op: 'add' | 'sub' | 'mul' | 'rdiv' | 'ldiv' | 'pow' | 'lt' | 'lte' | 'eq' | 'gte' | 'gt' | 'ne' | 'and' | 'or', left: MultiArray, right: ComplexDecimal): MultiArray;
    static leftOp(op: 'clone' | 'neg' | 'not', right: MultiArray): MultiArray;
    static ewiseOp(op: 'add' | 'sub' | 'mul' | 'rdiv' | 'ldiv' | 'pow' | 'lt' | 'lte' | 'eq' | 'gte' | 'gt' | 'ne' | 'and' | 'or', left: MultiArray, right: MultiArray): MultiArray;
    static inv(M: MultiArray): MultiArray;
    static zeros(...args: any): MultiArray | ComplexDecimal;
    static ones(...args: any): MultiArray | ComplexDecimal;
    static eye(i: ComplexDecimal, j?: ComplexDecimal): MultiArray;
    static pow(left: MultiArray, right: ComplexDecimal): MultiArray;
    static transpose(left: MultiArray): MultiArray;
    static ctranspose(left: MultiArray): MultiArray;
    static horzcat(L: MultiArray, R: MultiArray): MultiArray;
    static vertcat(U: MultiArray, D: MultiArray): MultiArray;
    static det(M: MultiArray): ComplexDecimal;
    static trace(M: MultiArray): ComplexDecimal;
    static rows(M: MultiArray): ComplexDecimal;
    static cols(M: MultiArray): ComplexDecimal;
    static minor(M: MultiArray, p: ComplexDecimal, q: ComplexDecimal): MultiArray;
    static cofactor(M: MultiArray): MultiArray;
    static min(M: MultiArray): MultiArray | ComplexDecimal;
    static max(M: MultiArray): MultiArray | ComplexDecimal;
    static mean(M: MultiArray): MultiArray | ComplexDecimal;
    static gauss(M: MultiArray, x: MultiArray): MultiArray | undefined;
    static lu(M: MultiArray): any;
    static pivot(M: MultiArray): MultiArray;
    static adj(M: MultiArray): MultiArray;
    static size(X: any, DIM: any): ComplexDecimal | {
        array: ComplexDecimal[][];
    } | undefined;
    static sub2ind(DIMS: any, ...S: any): ComplexDecimal;
    static ind2sub(DIMS: any, IND: any): ComplexDecimal;
}
