import type { NobjcObject } from "objc-js";
import type { _NSString } from "../Foundation/NSString.js";
import type { MDLVertexFormat } from "../ModelIO/MDLVertexFormat.js";
export declare function GLKMathProject(object_: NobjcObject, model: NobjcObject, projection: NobjcObject, viewport: NobjcObject): NobjcObject;
export declare function GLKMathUnproject(window: NobjcObject, model: NobjcObject, projection: NobjcObject, viewport: NobjcObject, success: NobjcObject | null): NobjcObject;
export declare function GLKMatrix3Invert(matrix: NobjcObject, isInvertible: NobjcObject): NobjcObject;
export declare function GLKMatrix3InvertAndTranspose(matrix: NobjcObject, isInvertible: NobjcObject): NobjcObject;
export declare function GLKMatrix4Invert(matrix: NobjcObject, isInvertible: NobjcObject | null): NobjcObject;
export declare function GLKMatrix4InvertAndTranspose(matrix: NobjcObject, isInvertible: NobjcObject | null): NobjcObject;
export declare function GLKMatrixStackCreate(alloc: NobjcObject | null): NobjcObject | null;
export declare function GLKMatrixStackGetMatrix2(stack: NobjcObject): NobjcObject;
export declare function GLKMatrixStackGetMatrix3(stack: NobjcObject): NobjcObject;
export declare function GLKMatrixStackGetMatrix3Inverse(stack: NobjcObject): NobjcObject;
export declare function GLKMatrixStackGetMatrix3InverseTranspose(stack: NobjcObject): NobjcObject;
export declare function GLKMatrixStackGetMatrix4(stack: NobjcObject): NobjcObject;
export declare function GLKMatrixStackGetMatrix4Inverse(stack: NobjcObject): NobjcObject;
export declare function GLKMatrixStackGetMatrix4InverseTranspose(stack: NobjcObject): NobjcObject;
export declare function GLKMatrixStackGetTypeID(): number;
export declare function GLKMatrixStackLoadMatrix4(stack: NobjcObject, matrix: NobjcObject): void;
export declare function GLKMatrixStackMultiplyMatrix4(stack: NobjcObject, matrix: NobjcObject): void;
export declare function GLKMatrixStackMultiplyMatrixStack(stackLeft: NobjcObject, stackRight: NobjcObject): void;
export declare function GLKMatrixStackPop(stack: NobjcObject): void;
export declare function GLKMatrixStackPush(stack: NobjcObject): void;
export declare function GLKMatrixStackRotate(stack: NobjcObject, radians: number, x: number, y: number, z: number): void;
export declare function GLKMatrixStackRotateWithVector3(stack: NobjcObject, radians: number, axisVector: NobjcObject): void;
export declare function GLKMatrixStackRotateWithVector4(stack: NobjcObject, radians: number, axisVector: NobjcObject): void;
export declare function GLKMatrixStackRotateX(stack: NobjcObject, radians: number): void;
export declare function GLKMatrixStackRotateY(stack: NobjcObject, radians: number): void;
export declare function GLKMatrixStackRotateZ(stack: NobjcObject, radians: number): void;
export declare function GLKMatrixStackScale(stack: NobjcObject, sx: number, sy: number, sz: number): void;
export declare function GLKMatrixStackScaleWithVector3(stack: NobjcObject, scaleVector: NobjcObject): void;
export declare function GLKMatrixStackScaleWithVector4(stack: NobjcObject, scaleVector: NobjcObject): void;
export declare function GLKMatrixStackSize(stack: NobjcObject): number;
export declare function GLKMatrixStackTranslate(stack: NobjcObject, tx: number, ty: number, tz: number): void;
export declare function GLKMatrixStackTranslateWithVector3(stack: NobjcObject, translationVector: NobjcObject): void;
export declare function GLKMatrixStackTranslateWithVector4(stack: NobjcObject, translationVector: NobjcObject): void;
export declare function GLKQuaternionAngle(quaternion: NobjcObject): number;
export declare function GLKQuaternionAxis(quaternion: NobjcObject): NobjcObject;
export declare function GLKQuaternionMakeWithMatrix3(matrix: NobjcObject): NobjcObject;
export declare function GLKQuaternionMakeWithMatrix4(matrix: NobjcObject): NobjcObject;
export declare function GLKQuaternionRotateVector3Array(quaternion: NobjcObject, vectors: NobjcObject, vectorCount: number): void;
export declare function GLKQuaternionRotateVector4Array(quaternion: NobjcObject, vectors: NobjcObject, vectorCount: number): void;
export declare function GLKQuaternionSlerp(quaternionStart: NobjcObject, quaternionEnd: NobjcObject, t: number): NobjcObject;
export declare function GLKVertexAttributeParametersFromModelIO(vertexFormat: MDLVertexFormat): NobjcObject;
export declare function NSStringFromGLKMatrix2(matrix: NobjcObject): _NSString;
export declare function NSStringFromGLKMatrix3(matrix: NobjcObject): _NSString;
export declare function NSStringFromGLKMatrix4(matrix: NobjcObject): _NSString;
export declare function NSStringFromGLKQuaternion(quaternion: NobjcObject): _NSString;
export declare function NSStringFromGLKVector2(vector: NobjcObject): _NSString;
export declare function NSStringFromGLKVector3(vector: NobjcObject): _NSString;
export declare function NSStringFromGLKVector4(vector: NobjcObject): _NSString;
