export type ProductionAssetClass = "product" | "automotive" | "character" | "materials" | "animation" | "asset";
export interface ProductionAssetCorpusRequirements {
    readonly minimumRealGlbAssets: number;
    readonly minimumVisualFlagshipAssets: number;
    readonly minimumPbrTextureAssets: number;
    readonly minimumAdvancedMaterialAssets: number;
    readonly minimumAnimationAssets: number;
    readonly minimumTotalBytes: number;
    readonly everyAssetRequiresLicenseSourceShaAndLocalPath: boolean;
    readonly mustParseGlbJsonChunk: boolean;
    readonly mustRejectPrimitiveOnlyProof: boolean;
}
export interface ProductionAssetManifestEntry {
    readonly id: string;
    readonly name: string;
    readonly class: ProductionAssetClass;
    readonly role: string;
    readonly localPath: string;
    readonly license: string;
    readonly repository: string;
    readonly revision: string;
    readonly sourcePath: string;
    readonly sourceUri: string;
    readonly sha256: string;
    readonly bytes: number;
    readonly tags: readonly string[];
    readonly renderRequirements: readonly string[];
}
export interface ProductionAssetManifest {
    readonly schema: "a3d-production-runtime-real-asset-corpus";
    readonly sourceManifest: string;
    readonly requirements: ProductionAssetCorpusRequirements;
    readonly claimBoundary: string;
    readonly assets: readonly ProductionAssetManifestEntry[];
}
export interface ProductionGlbInspection {
    readonly validGlb: boolean;
    readonly version: number;
    readonly jsonChunkBytes: number;
    readonly sceneCount: number;
    readonly nodeCount: number;
    readonly meshCount: number;
    readonly primitiveCount: number;
    readonly materialCount: number;
    readonly textureCount: number;
    readonly imageCount: number;
    readonly animationCount: number;
    readonly skinCount: number;
    readonly morphTargetPrimitiveCount: number;
    readonly extensionCount: number;
    readonly extensionsUsed: readonly string[];
    readonly pbrMaterialCount: number;
    readonly texturedPbrMaterialCount: number;
    readonly advancedMaterialExtensionCount: number;
    readonly hasRealSceneComplexity: boolean;
}
export interface ProductionAssetReadinessEntry {
    readonly id: string;
    readonly localPath: string;
    readonly exists: boolean;
    readonly sha256Matches: boolean;
    readonly bytesMatch: boolean;
    readonly licenseReviewRequired: boolean;
    readonly inspection: ProductionGlbInspection | null;
}
export interface ProductionAssetCorpusSummary {
    readonly schema: "a3d-production-runtime-asset-readiness";
    readonly pass: boolean;
    readonly assetCount: number;
    readonly existingAssetCount: number;
    readonly shaVerifiedAssetCount: number;
    readonly realGlbParsedCount: number;
    readonly visualFlagshipAssetCount: number;
    readonly totalBytes: number;
    readonly pbrTextureAssetCount: number;
    readonly advancedMaterialAssetCount: number;
    readonly animationAssetCount: number;
    readonly skinAssetCount: number;
    readonly morphAssetCount: number;
    readonly classCoverage: readonly string[];
    readonly extensionCoverage: readonly string[];
    readonly primitiveOnlyRejected: boolean;
    readonly failures: readonly string[];
    readonly entries: readonly ProductionAssetReadinessEntry[];
}
export declare function loadProductionAssetManifest(path?: string): ProductionAssetManifest;
export declare function inspectProductionGlb(path: string): ProductionGlbInspection;
export declare function createProductionAssetCorpusSummary(manifest?: ProductionAssetManifest): ProductionAssetCorpusSummary;
//# sourceMappingURL=ProductionAssetCorpus.d.ts.map