import type { Fn0 } from "@thi.ng/api";
import type { ITensor, ITensor0, ITensor1, ITensor2, ITensor3, ITensor4 } from "./api.js";
export declare const randDistrib0: (a: ITensor0, rnd?: () => number, n?: number) => ITensor0;
/**
 * Same as {@link randDistrib} for 1D tensors.
 *
 * @param a
 * @param rnd
 * @param n
 */
export declare const randDistrib1: (a: ITensor1, rnd?: () => number, n?: number) => ITensor1;
/**
 * Same as {@link randDistrib} for 2D tensors.
 *
 * @param a
 * @param rnd
 * @param n
 */
export declare const randDistrib2: (a: ITensor2, rnd?: () => number, n?: number) => ITensor2;
/**
 * Same as {@link randDistrib} for 3D tensors.
 *
 * @param a
 * @param rnd
 * @param n
 */
export declare const randDistrib3: (a: ITensor3, rnd?: () => number, n?: number) => ITensor3;
/**
 * Same as {@link randDistrib} for 3D tensors.
 *
 * @param a
 * @param rnd
 * @param n
 */
export declare const randDistrib4: (a: ITensor4, rnd?: () => number, n?: number) => ITensor4;
/**
 * Randomizes given nD tensor `a`, with each component drawn from given random
 * distribution function (default: gaussian/normal distribution) and scaled to
 * `n` (default: 1).
 *
 * @remarks
 * References:
 *
 * - https://docs.thi.ng/umbrella/random/#random-distributions
 * - https://docs.thi.ng/umbrella/random/functions/normal.html
 *
 * @param a - tensor
 * @param rnd - random distribution function
 * @param n - scale factor
 */
export declare const randDistrib: import("./api.js").MultiTensorOpImpl<(<T extends ITensor>(a: T, rnd?: Fn0<number>, n?: number) => T)>;
//# sourceMappingURL=rand-distrib.d.ts.map