import { NDArray } from "../NDArray-class"; /** @typedef {null | number} AxisArg */ export type AxisArg = null | number; /** * @typedef {Object} ReduceKwargs * @property {AxisArg} [axis] * @property {boolean} [keepdims] */ export type ReduceKwargs = { axis?: AxisArg; keepdims?: boolean; }; /** * @typedef {(axis?: AxisArg | ReduceKwargs, keepdims?: boolean | ReduceKwargs) => NDArray | T} ReduceSignature * @template [T=number] */ export type ReduceSignature = (axis?: AxisArg | ReduceKwargs, keepdims?: boolean | ReduceKwargs) => NDArray | T; /** @typedef {ReduceSignature} ReduceSignatureBool */ export type ReduceSignatureBool = ReduceSignature; /** @typedef {[AxisArg, boolean]} ReduceParsedKwargs */ export type ReduceParsedKwargs = [AxisArg, boolean]; /** * @typedef {Object} ReduceStdKwargs * @property {number} [axis] * @property {boolean} [keepdims] * @property {number} [ddof] */ export type ReduceStdKwargs = { axis?: number; keepdims?: boolean; ddof?: number; }; /** @typedef {(axis?: AxisArg | ReduceStdKwargs, keepdims?: boolean | ReduceStdKwargs, ddof?: number | ReduceStdKwargs) => NDArray | number} ReduceStdSignature */ export type ReduceStdSignature = (axis?: AxisArg | ReduceStdKwargs, keepdims?: boolean | ReduceStdKwargs, ddof?: number | ReduceStdKwargs) => NDArray | number; /** @typedef {[AxisArg, boolean, number]} ReduceStdParsedKwargs */ export type ReduceStdParsedKwargs = [AxisArg, boolean, number]; /** * @typedef {Object} ReduceNormKwargs * @property {number} [axis] * @property {boolean} [keepdims] * @property {number} [ord] */ export type ReduceNormKwargs = { axis?: number; keepdims?: boolean; ord?: number; }; /** @typedef {(axis?: AxisArg | ReduceNormKwargs, keepdims?: boolean | ReduceNormKwargs, ord?: number | ReduceNormKwargs) => NDArray | number} ReduceNormSignature */ export type ReduceNormSignature = (axis?: AxisArg | ReduceNormKwargs, keepdims?: boolean | ReduceNormKwargs, ord?: number | ReduceNormKwargs) => NDArray | number; /** @typedef {[AxisArg, boolean, number]} ReduceNormParsedKwargs */ export type ReduceNormParsedKwargs = [AxisArg, boolean, number]; /** * @typedef {Object} RoundKwargs * @property {number} [decimals] */ export type RoundKwargs = { decimals?: number; }; /** @typedef {(decimals?: number) => NDArray} RoundSignature */ export type RoundSignature = (decimals?: number) => NDArray; /** @typedef {[number]} RoundParsedKwargs */ export type RoundParsedKwargs = [number]; /** * @typedef {(other: NDArray | T, out?: NDArray | null) => NDArray} BinaryOperatorSignature * @template [T=number] */ export type BinaryOperatorSignature = (other: NDArray | T, out?: NDArray | null) => NDArray; /** * @typedef {Object} BinaryOperatorKwargs * @property {NDArray} other * @property {NDArray | null} [out] */ export type BinaryOperatorKwargs = { other: NDArray; out?: NDArray | null; }; /** @typedef {[NDArray, NDArray | null]} BinaryOperatorParsedKwargs */ export type BinaryOperatorParsedKwargs = [NDArray, NDArray | null]; /** @typedef {(out?: NDArray | null) => NDArray} UnaryOperatorSignature */ export type UnaryOperatorSignature = (out?: NDArray | null) => NDArray; /** * @typedef {Object} UnaryOperatorKwargs * @property {NDArray | null} [out] */ export type UnaryOperatorKwargs = { out?: NDArray | null; }; /** @typedef {[NDArray | null]} UnaryOperatorParsedKwargs */ export type UnaryOperatorParsedKwargs = [NDArray | null]; /** @typedef {[string, any] | [string, any, (x: any) => any]} KwTuple */ type KwTuple = [string, any] | [string, any, (x: any) => any]; /** * @param {{ defaults: KwTuple[], func: (arr: NDArray, ...args: Parsed) => any }} * @returns {{ as_function: (arr: number | boolean | NDArray, ...args: Parameters) => ReturnType; as_method: (...args: Parameters) => ReturnType; }} */ export declare function kwDecorators any, Parsed extends any[]>({ defaults, func }: { defaults: KwTuple[]; func: (arr: NDArray, ...args: Parsed) => any; }): { as_function: (arr: number | boolean | NDArray, ...args: Parameters) => ReturnType; as_method: (...args: Parameters) => ReturnType; }; /** * @param {{ defaults: KwTuple[], func: (...args: Parsed) => any }} * @returns {(...args: Parameters) => ReturnType} */ export declare function kwDecorator any, Parsed extends any[]>({ defaults, func }: { defaults: KwTuple[]; func: (...args: Parsed) => any; }): (...args: Parameters) => ReturnType; export declare class KwParser any, Parsed extends any[]> { defaults: KwTuple[]; constructor(defaults: KwTuple[]); /** * @param {...Parameters} [args] * @returns {Parsed} */ parse(...args: Parameters): Parsed; /** * @param {F} func * @returns {(arr: NDArray | number | boolean, ...args: Parameters) => ReturnType} */ as_arr_function ReturnType>(func: F): (arr: NDArray | number | boolean, ...args: Parameters) => ReturnType; /** * @param {F} func * @returns {(...args: Parameters) => ReturnType} */ as_arr_method ReturnType>(func: F): (...args: Parameters) => ReturnType; /** * @param {F} func * @returns {{ as_function: (arr: number | boolean | NDArray, ...args: Parameters) => ReturnType; as_method: (...args: Parameters) => ReturnType; }} */ decorators ReturnType>(func: F): { as_function: (arr: number | boolean | NDArray, ...args: Parameters) => ReturnType; as_method: (...args: Parameters) => ReturnType; }; /** * @param {F} func * @returns {(...args: Parameters) => ReturnType} */ as_function ReturnType>(func: F): (...args: Parameters) => ReturnType; } export {}; /** @typedef {null | number} AxisArg */ /** * @typedef {Object} ReduceKwargs * @property {AxisArg} [axis] * @property {boolean} [keepdims] */ /** * @typedef {(axis?: AxisArg | ReduceKwargs, keepdims?: boolean | ReduceKwargs) => NDArray | T} ReduceSignature * @template [T=number] */ /** @typedef {ReduceSignature} ReduceSignatureBool */ /** @typedef {[AxisArg, boolean]} ReduceParsedKwargs */ /** * @typedef {Object} ReduceStdKwargs * @property {number} [axis] * @property {boolean} [keepdims] * @property {number} [ddof] */ /** @typedef {(axis?: AxisArg | ReduceStdKwargs, keepdims?: boolean | ReduceStdKwargs, ddof?: number | ReduceStdKwargs) => NDArray | number} ReduceStdSignature */ /** @typedef {[AxisArg, boolean, number]} ReduceStdParsedKwargs */ /** * @typedef {Object} ReduceNormKwargs * @property {number} [axis] * @property {boolean} [keepdims] * @property {number} [ord] */ /** @typedef {(axis?: AxisArg | ReduceNormKwargs, keepdims?: boolean | ReduceNormKwargs, ord?: number | ReduceNormKwargs) => NDArray | number} ReduceNormSignature */ /** @typedef {[AxisArg, boolean, number]} ReduceNormParsedKwargs */ /** * @typedef {Object} RoundKwargs * @property {number} [decimals] */ /** @typedef {(decimals?: number) => NDArray} RoundSignature */ /** @typedef {[number]} RoundParsedKwargs */ /** * @typedef {(other: NDArray | T, out?: NDArray | null) => NDArray} BinaryOperatorSignature * @template [T=number] */ /** * @typedef {Object} BinaryOperatorKwargs * @property {NDArray} other * @property {NDArray | null} [out] */ /** @typedef {[NDArray, NDArray | null]} BinaryOperatorParsedKwargs */ /** @typedef {(out?: NDArray | null) => NDArray} UnaryOperatorSignature */ /** * @typedef {Object} UnaryOperatorKwargs * @property {NDArray | null} [out] */ /** @typedef {[NDArray | null]} UnaryOperatorParsedKwargs */ /** @typedef {[string, any] | [string, any, (x: any) => any]} KwTuple */ //# sourceMappingURL=kwargs.d.ts.map