export type A3DColorSpace = "linear" | "srgb";
export type A3DTextureSemantic = "base-color" | "emissive" | "normal" | "metallic-roughness" | "roughness" | "metallic" | "occlusion" | "height" | "transmission" | "specular" | "sheen" | "anisotropy" | "iridescence" | "environment";
export interface A3DColorManagementPolicy {
    readonly lightingColorSpace: "linear";
    readonly outputColorSpace: A3DColorSpace;
    readonly texturePolicy: Readonly<Record<A3DTextureSemantic, A3DColorSpace>>;
    readonly allowLdrFallback: boolean;
    readonly fallbackBehavior: string;
}
export interface A3DColorConversionSample {
    readonly input: number;
    readonly linear: number;
    readonly srgb: number;
    readonly roundTripError: number;
}
export interface A3DTextureColorSpaceValidation {
    readonly semantic: A3DTextureSemantic;
    readonly expected: A3DColorSpace;
    readonly actual: A3DColorSpace;
    readonly pass: boolean;
    readonly warning?: string;
}
export declare const EXTERNAL_PARITY_TEXTURE_COLOR_POLICY: Readonly<Record<A3DTextureSemantic, A3DColorSpace>>;
export declare function createExternalParityColorManagementPolicy(options?: {
    readonly outputColorSpace?: A3DColorSpace;
    readonly allowLdrFallback?: boolean;
}): A3DColorManagementPolicy;
export declare function srgbToLinearChannel(value: number): number;
export declare function linearToSrgbChannel(value: number): number;
export declare function convertColorSpace(color: readonly [number, number, number, number], from: A3DColorSpace, to: A3DColorSpace): [number, number, number, number];
export declare function validateTextureColorSpace(semantic: A3DTextureSemantic, actual: A3DColorSpace, policy?: A3DColorManagementPolicy): A3DTextureColorSpaceValidation;
export declare function createColorConversionSamples(samples?: readonly number[]): readonly A3DColorConversionSample[];
//# sourceMappingURL=ColorManagement.d.ts.map