/** @packageDocumentation
 * @module WebGL
 */
import { Matrix3d, Matrix4d, Point3d, Transform, Vector3d } from "@itwin/core-geometry";
/** @internal */
export declare class Matrix3 {
    readonly data: Float32Array;
    constructor();
    initIdentity(): void;
    static fromIdentity(out?: Matrix3): Matrix3;
    copyFrom(src: Matrix3): void;
    clone(out?: Matrix3): Matrix3;
    setValues(m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number): void;
    static fromValues(m00: number, m01: number, m02: number, m10: number, m11: number, m12: number, m20: number, m21: number, m22: number, out?: Matrix3): Matrix3;
    initFromMatrix3d(rot: Matrix3d): void;
    static fromMatrix3d(rot: Matrix3d, out?: Matrix3): Matrix3;
    toMatrix3d(): Matrix3d;
    swap(firstIndex: number, secondIndex: number): void;
    transpose(): void;
    static fromTranspose(src: Matrix3, out?: Matrix3): Matrix3;
    get(index: number): number;
    set(index: number, value: number): void;
    at(row: number, col: number): number;
    setAt(row: number, col: number, value: number): void;
    get m00(): number;
    set m00(value: number);
    get m01(): number;
    set m01(value: number);
    get m02(): number;
    set m02(value: number);
    get m10(): number;
    set m10(value: number);
    get m11(): number;
    set m11(value: number);
    get m12(): number;
    set m12(value: number);
    get m20(): number;
    set m20(value: number);
    get m21(): number;
    set m21(value: number);
    get m22(): number;
    set m22(value: number);
}
/** @internal */
export declare class Matrix4 {
    readonly data: Float32Array;
    constructor();
    copyFrom(src: Matrix4): void;
    clone(out?: Matrix4): Matrix4;
    initIdentity(): void;
    static fromIdentity(out?: Matrix4): Matrix4;
    setValues(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number): void;
    static fromValues(m00: number, m01: number, m02: number, m03: number, m10: number, m11: number, m12: number, m13: number, m20: number, m21: number, m22: number, m23: number, m30: number, m31: number, m32: number, m33: number, out?: Matrix4): Matrix4;
    getRotation(out?: Matrix3): Matrix3;
    initFromTransform(transform: Transform): void;
    static fromTransform(transform: Transform, out?: Matrix4): Matrix4;
    toTransform(): Transform;
    initFromMatrix4d(mat: Matrix4d): void;
    static fromMatrix4d(mat: Matrix4d, out?: Matrix4): Matrix4;
    toMatrix4d(result?: Matrix4d): Matrix4d;
    lookAt(eye: Point3d, center: Point3d, up: Vector3d): boolean;
    static fromLookAt(eye: Point3d, center: Point3d, up: Vector3d, out?: Matrix4): Matrix4 | undefined;
    frustum(l: number, r: number, b: number, t: number, n: number, f: number): void;
    static fromFrustum(l: number, r: number, b: number, t: number, n: number, f: number, out?: Matrix4): Matrix4;
    perspective(fovY: number, aspectRatio: number, nearZ: number, farZ: number): void;
    static fromPerspective(fovY: number, aspectRatio: number, nearZ: number, farZ: number, out?: Matrix4): Matrix4;
    ortho(l: number, r: number, b: number, t: number, n: number, f: number): void;
    static fromOrtho(l: number, r: number, b: number, t: number, n: number, f: number, out?: Matrix4): Matrix4;
    invert(): boolean;
    static fromInverse(src: Matrix4, out?: Matrix4): Matrix4 | undefined;
    swap(firstIndex: number, secondIndex: number): void;
    transpose(): void;
    static fromTranspose(src: Matrix4, out?: Matrix4): Matrix4;
    multiplyBy(other: Matrix4): void;
    static fromProduct(a: Matrix4, b: Matrix4, out?: Matrix4): Matrix4;
    multiplyByScalar(scalar: number): void;
    get(index: number): number;
    set(index: number, value: number): void;
    at(row: number, col: number): number;
    setAt(row: number, col: number, value: number): void;
    get m00(): number;
    set m00(value: number);
    get m01(): number;
    set m01(value: number);
    get m02(): number;
    set m02(value: number);
    get m03(): number;
    set m03(value: number);
    get m10(): number;
    set m10(value: number);
    get m11(): number;
    set m11(value: number);
    get m12(): number;
    set m12(value: number);
    get m13(): number;
    set m13(value: number);
    get m20(): number;
    set m20(value: number);
    get m21(): number;
    set m21(value: number);
    get m22(): number;
    set m22(value: number);
    get m23(): number;
    set m23(value: number);
    get m30(): number;
    set m30(value: number);
    get m31(): number;
    set m31(value: number);
    get m32(): number;
    set m32(value: number);
    get m33(): number;
    set m33(value: number);
}
/** @internal */
export declare function fromNormalizedCrossProduct(vec0: Vector3d, vec1: Vector3d): Vector3d | undefined;
/** @internal */
export declare function normalizedDifference(target: Point3d, origin: Point3d): Vector3d | undefined;
//# sourceMappingURL=Matrix.d.ts.map