import { type ExternalParityMaterialExtension, type ExternalParityMaterialExtensionState } from "./MaterialExtensions";
export type ExternalParityMaterialKind = "chrome" | "brushed-metal" | "gold" | "painted-metal" | "matte-plastic" | "glossy-plastic" | "rubber" | "glass-transmission" | "clearcoat-car-paint" | "fabric-sheen" | "emissive" | "textured-ceramic-stone";
export interface ExternalParityPhysicalMaterialDescriptor {
    readonly id: ExternalParityMaterialKind;
    readonly label: string;
    readonly baseColor: readonly [number, number, number, number];
    readonly metallic: number;
    readonly roughness: number;
    readonly emissive?: readonly [number, number, number];
    readonly emissiveStrength?: number;
    readonly normalScale?: number;
    readonly occlusionStrength?: number;
    readonly alphaMode?: "opaque" | "mask" | "blend";
    readonly alphaCutoff?: number;
    readonly doubleSided?: boolean;
    readonly extensions: readonly ExternalParityMaterialExtension[];
    readonly visualGoal: string;
}
export interface ExternalParityPhysicalMaterialAnalysis {
    readonly descriptor: ExternalParityPhysicalMaterialDescriptor;
    readonly extensionDiagnostics: readonly ExternalParityMaterialExtensionState[];
    readonly reflectanceClass: "mirror-metal" | "rough-metal" | "dielectric" | "transparent" | "emissive";
    readonly requiresIbl: boolean;
    readonly requiresTransmissionPass: boolean;
    readonly requiresAlphaSorting: boolean;
    readonly warnings: readonly string[];
}
export declare class ExternalParityPhysicalMaterial {
    readonly descriptor: ExternalParityPhysicalMaterialDescriptor;
    constructor(descriptor: ExternalParityPhysicalMaterialDescriptor);
    analyze(): ExternalParityPhysicalMaterialAnalysis;
}
export declare const EXTERNAL_PARITY_PHYSICAL_MATERIAL_MATRIX: readonly ExternalParityPhysicalMaterialDescriptor[];
export declare function createExternalParityPhysicalMaterial(kind: ExternalParityMaterialKind): ExternalParityPhysicalMaterial;
export declare function analyzeExternalParityMaterialMatrix(): readonly ExternalParityPhysicalMaterialAnalysis[];
//# sourceMappingURL=PhysicalMaterial.d.ts.map