import type { ReadonlyVec, Vec, VecOpVV } from "@thi.ng/vectors";
import type { MatOpMV, MultiMatOpMV, ReadonlyMat } from "./api.js";
/**
 * Matrix-vector multiplication. Supports in-place modification, i.e. if
 * `out === v`.
 *
 * @param out -
 * @param m -
 * @param v -
 */
export declare const mulV: MultiMatOpMV;
/**
 * Multiplies 2x2 matrix `m` with 2D vector `v`. Supports in-place
 * modification, i.e. if `out === v`.
 *
 * @param out -
 * @param m -
 * @param v -
 */
export declare const mulV22: MatOpMV;
/**
 * Multiplies 2x3 matrix `m` with 2D vector `v`. Supports in-place
 * modification, i.e. if `out === v`.
 *
 * @param out -
 * @param m -
 * @param v -
 */
export declare const mulV23: MatOpMV;
/**
 * Multiplies 3x3 matrix `m` with 3D vector `v`. Supports in-place
 * modification, i.e. if `out === v`.
 *
 * @param out -
 * @param m -
 * @param v -
 */
export declare const mulV33: MatOpMV;
/**
 * Multiplies 4x4 matrix `m` with 4D vector `v`. Supports in-place
 * modification, i.e. if `out === v`.
 *
 * @param out -
 * @param m -
 * @param v -
 */
export declare const mulV44: MatOpMV;
/**
 * Multiplies 4x4 matrix `m` with 3D vector `v` and assumes initial
 * `w=1`, i.e. the vector is interpreted as `[x,y,z,1]`. After
 * transformation applies perspective divide of the resulting XYZ
 * components. Returns `undefined` if the computed perspective divisor
 * is zero (and would cause `NaN` results).
 *
 * @param out -
 * @param m -
 * @param v -
 */
export declare const mulV344: (out: Vec | null, m: ReadonlyMat, v: ReadonlyVec) => Vec | undefined;
/**
 * Multiplies quaternion `q` with 3D vector `v`. Returns transformed
 * vector or modifies in-place if `out` is null or `v`.
 *
 * @param out -
 * @param q -
 * @param v -
 */
export declare const mulVQ: VecOpVV;
//# sourceMappingURL=mulv.d.ts.map