import { Vec3 } from '@quake2ts/shared'; import { VirtualFileSystem } from './vfs.js'; export interface Md3Header { readonly ident: number; readonly version: number; readonly name: string; readonly flags: number; readonly numFrames: number; readonly numTags: number; readonly numSurfaces: number; readonly numSkins: number; readonly ofsFrames: number; readonly ofsTags: number; readonly ofsSurfaces: number; readonly ofsEnd: number; readonly magic?: number; } export interface Md3Frame { readonly minBounds: Vec3; readonly maxBounds: Vec3; readonly localOrigin: Vec3; readonly radius: number; readonly name: string; } export interface Md3Tag { readonly name: string; readonly origin: Vec3; readonly axis: readonly [Vec3, Vec3, Vec3]; } export interface Md3Triangle { readonly indices: readonly [number, number, number]; } export interface Md3Shader { readonly name: string; readonly shaderIndex: number; } export interface Md3TexCoord { readonly s: number; readonly t: number; } export interface Md3Vertex { readonly position: Vec3; readonly normal: Vec3; readonly latLng: number; } export interface Md3Surface { readonly name: string; readonly flags: number; readonly numFrames: number; readonly shaders: readonly Md3Shader[]; readonly triangles: readonly Md3Triangle[]; readonly texCoords: readonly Md3TexCoord[]; readonly vertices: readonly (readonly Md3Vertex[])[]; } export interface Md3Model { readonly header: Md3Header; readonly frames: readonly Md3Frame[]; readonly tags: readonly Md3Tag[][]; readonly surfaces: readonly Md3Surface[]; } export declare class Md3ParseError extends Error { constructor(message: string); } export declare function parseMd3(buffer: ArrayBufferLike): Md3Model; export declare class Md3Loader { private readonly vfs; private readonly cache; constructor(vfs: VirtualFileSystem); load(path: string): Promise; get(path: string): Md3Model | undefined; } //# sourceMappingURL=md3.d.ts.map