import type { ReadonlyVec, Vec, VecOpV } from "./api.js";
/**
 * Places a re-ordered 2D version of vector `a` into `out`. The given
 * coord indices must be valid for `a`. No bounds checking.
 *
 * @param out -
 * @param a -
 * @param x - new x coord index
 * @param y - new y coord index
 */
export declare const swizzle2: (out: Vec | null, a: ReadonlyVec, x: number, y: number) => Vec;
/**
 * Places a re-ordered 3D version of vector `a` into `out`. The given
 * coord indices must be valid for `a`. No bounds checking.
 *
 * @param out -
 * @param a -
 * @param x - new x coord index
 * @param y - new y coord index
 * @param z - new z coord index
 */
export declare const swizzle3: (out: Vec | null, a: ReadonlyVec, x: number, y: number, z: number) => Vec;
/**
 * Places a re-ordered 4D version of vector `a` into `out`. The given
 * coord indices must be valid for `a`. No bounds checking.
 *
 * @param out -
 * @param a -
 * @param x - new x coord index
 * @param y - new y coord index
 * @param z - new z coord index
 * @param w - new w coord index
 */
export declare const swizzle4: (out: Vec | null, a: ReadonlyVec, x: number, y: number, z: number, w: number) => Vec;
export declare const swapXY: VecOpV;
export declare const swapXZ: VecOpV;
export declare const swapYZ: VecOpV;
/**
 * Sets `out[a] = n`, returns `out`.
 *
 * @param out -
 * @param n -
 * @param a -
 */
export declare const setSwizzle1: (out: Vec, n: number, a: number) => Vec;
/**
 * Sets `out[a] = v.x, out[b] = v.y`, returns `out`.
 *
 * @param out -
 * @param v -
 * @param a -
 * @param b -
 */
export declare const setSwizzle2: (out: Vec, v: ReadonlyVec, a: number, b: number) => Vec;
/**
 * Sets `out[a] = v.x, out[b] = v.y, out[c] = v.z`, returns `out`.
 *
 * @param out -
 * @param v -
 * @param a -
 * @param b -
 * @param c -
 */
export declare const setSwizzle3: (out: Vec, v: ReadonlyVec, a: number, b: number, c: number) => Vec;
/**
 * Sets `out[a] = v.x, out[b] = v.y, out[c] = v.z, out[d]=v.w`, returns `out`.
 *
 * @param out -
 * @param v -
 * @param a -
 * @param b -
 * @param c -
 * @param d -
 */
export declare const setSwizzle4: (out: Vec, v: ReadonlyVec, a: number, b: number, c: number, d: number) => Vec;
//# sourceMappingURL=swizzle.d.ts.map