import { type AssetDiagnostic, type AssetImportSettings, type GLTFCorpusManifest, type GLTFCorpusReport } from "./AssetCorpus";
import type { BlenderExportValidationReport } from "./BlenderExportValidation";
export type AssetCompatibilityLoaderName = "aura3d" | "threejs" | "babylonjs" | "blender-export";
export type AssetCompatibilityStatus = "pass" | "warn" | "expected-fail" | "not-run";
export interface AssetLoaderCompatibilityResult {
    readonly loader: AssetCompatibilityLoaderName;
    readonly status: AssetCompatibilityStatus;
    readonly diagnostics: readonly AssetDiagnostic[];
}
export interface AssetCompatibilityReportAsset {
    readonly id: string;
    readonly name: string;
    readonly format: string;
    readonly tags: readonly string[];
    readonly sourceUri: string;
    readonly sourceRevision: string;
    readonly sourceSha256: string;
    readonly importSettings: AssetImportSettings;
    readonly loaders: readonly AssetLoaderCompatibilityResult[];
}
export interface AssetCompatibilityReport {
    readonly schemaVersion: "asset-compatibility-report";
    readonly generatedAt: string;
    readonly sourceManifest: GLTFCorpusReport["sourceManifest"];
    readonly fixtureStatus: {
        readonly blenderExportFixtures: "present" | "missing";
    };
    readonly blenderExportValidation?: BlenderExportValidationReport;
    readonly summary: {
        readonly assetCount: number;
        readonly aura3d: Record<AssetCompatibilityStatus, number>;
        readonly threejs: Record<AssetCompatibilityStatus, number>;
        readonly babylonjs: Record<AssetCompatibilityStatus, number>;
        readonly blenderExport: Record<AssetCompatibilityStatus, number>;
    };
    readonly assets: readonly AssetCompatibilityReportAsset[];
}
export interface AssetCompatibilityReportOptions {
    readonly generatedAt?: string;
    readonly blenderExportFixturesPresent?: boolean;
    readonly blenderExportValidation?: BlenderExportValidationReport;
    readonly externalLoaderResults?: readonly ExternalAssetLoaderCompatibilityResult[];
    readonly blenderExportResults?: readonly BlenderExportCompatibilityResult[];
}
export interface ExternalAssetLoaderCompatibilityResult extends AssetLoaderCompatibilityResult {
    readonly assetId: string;
    readonly loader: "threejs" | "babylonjs";
}
export interface BlenderExportCompatibilityResult extends AssetLoaderCompatibilityResult {
    readonly assetId: string;
    readonly loader: "blender-export";
}
export declare function createAssetCompatibilityReport(manifest: GLTFCorpusManifest, options?: AssetCompatibilityReportOptions): AssetCompatibilityReport;
//# sourceMappingURL=AssetCompatibility.d.ts.map