import type BigNumber from 'bignumber.js'; import type { Complex } from 'complex.js'; /** Scalar types supported by pinv */ type Scalar = number | BigNumber | Complex; /** Nested array of scalar values */ type NestedArray = T | NestedArray[]; /** Matrix data can be nested arrays of scalars */ type MatrixData = NestedArray; /** Typed function interface for math.js functions */ interface TypedFunction { (...args: unknown[]): R; find(func: TypedFunction, signature: string[]): TypedFunction; } /** Matrix interface */ interface Matrix { type: string; storage(): string; datatype(): string | undefined; size(): number[]; clone(): Matrix; toArray(): MatrixData; valueOf(): MatrixData; _data?: MatrixData; _size?: number[]; _datatype?: string; } /** Matrix constructor function */ interface MatrixConstructor { (data: Scalar[] | Scalar[][], storage?: 'dense' | 'sparse'): Matrix; } /** Complex number constructor */ interface ComplexConstructor { (re: number, im: number): Complex; } /** Dependencies for pinv factory */ interface Dependencies { typed: TypedFunction; matrix: MatrixConstructor; inv: TypedFunction; deepEqual: TypedFunction; equal: TypedFunction; dotDivide: TypedFunction; dot: TypedFunction; ctranspose: TypedFunction; divideScalar: TypedFunction; multiply: TypedFunction; add: TypedFunction; Complex: ComplexConstructor; } export declare const createPinv: import("../utils/factory.js").FactoryFunction; export {}; //# sourceMappingURL=pinv.d.ts.map