import { Material, type RenderState } from "./Material";
import { TextureBinding } from "./TextureBinding";
export declare const DEFAULT_PBR_SHADER_NAME = "aura3d/pbr-direct";
export declare const DEFAULT_PBR_SHADER_MARKER = "@aura3d-shader:pbr-direct";
export interface PBRMaterialOptions {
    readonly name?: string;
    readonly baseColor?: readonly [number, number, number, number];
    readonly renderState?: Partial<RenderState>;
    readonly metallic?: number;
    readonly roughness?: number;
    readonly environmentColor?: readonly [number, number, number];
    readonly environmentIntensity?: number;
    readonly proceduralEnvironmentMap?: PBRProceduralEnvironmentMapOptions;
    readonly environmentMapTexture?: TextureBinding;
    readonly environmentMapIntensity?: number;
    readonly environmentMapSpecularIntensity?: number;
    readonly environmentMapRotation?: number;
    readonly environmentMapMipCount?: number;
    readonly environmentBrdfLutTexture?: TextureBinding;
    readonly emissiveColor?: readonly [number, number, number];
    readonly emissiveStrength?: number;
    readonly clearcoatFactor?: number;
    readonly clearcoatRoughnessFactor?: number;
    readonly transmissionFactor?: number;
    readonly diffuseTransmissionFactor?: number;
    readonly diffuseTransmissionColorFactor?: readonly [number, number, number];
    readonly transmissionFallbackEnergy?: number;
    readonly volumeThicknessFactor?: number;
    readonly volumeAttenuationDistance?: number;
    readonly volumeAttenuationColor?: readonly [number, number, number];
    readonly transmissionParallaxStrength?: number;
    readonly transmissionParallaxBoxMin?: readonly [number, number, number];
    readonly transmissionParallaxBoxMax?: readonly [number, number, number];
    readonly transmissionBounceCount?: number;
    readonly transmissionCausticStrength?: number;
    readonly ior?: number;
    readonly specularFactor?: number;
    readonly specularColorFactor?: readonly [number, number, number];
    readonly sheenColorFactor?: readonly [number, number, number];
    readonly sheenRoughnessFactor?: number;
    readonly anisotropyStrength?: number;
    readonly anisotropyRotation?: number;
    readonly iridescenceFactor?: number;
    readonly iridescenceIor?: number;
    readonly iridescenceThicknessMinimum?: number;
    readonly iridescenceThicknessMaximum?: number;
    readonly dispersion?: number;
}
export interface PBRProceduralEnvironmentMapOptions {
    readonly skyColor: readonly [number, number, number];
    readonly horizonColor: readonly [number, number, number];
    readonly groundColor: readonly [number, number, number];
    readonly specularColor: readonly [number, number, number];
    readonly intensity: number;
    readonly specularIntensity: number;
}
export declare class PBRMaterial extends Material {
    constructor(options?: PBRMaterialOptions);
    set baseColor(value: readonly [number, number, number, number]);
    get baseColor(): readonly [number, number, number, number];
    set metallic(value: number);
    get metallic(): number;
    set roughness(value: number);
    get roughness(): number;
    set environmentColor(value: readonly [number, number, number]);
    get environmentColor(): readonly [number, number, number];
    set environmentIntensity(value: number);
    get environmentIntensity(): number;
    set proceduralEnvironmentMap(value: PBRProceduralEnvironmentMapOptions);
    get proceduralEnvironmentMap(): PBRProceduralEnvironmentMapOptions;
    set environmentMapTexture(value: TextureBinding | null);
    get environmentMapTexture(): TextureBinding | null;
    set environmentMapIntensity(value: number);
    get environmentMapIntensity(): number;
    set environmentMapSpecularIntensity(value: number);
    get environmentMapSpecularIntensity(): number;
    set environmentMapRotation(value: number);
    get environmentMapRotation(): number;
    set environmentMapMipCount(value: number);
    get environmentMapMipCount(): number;
    set environmentBrdfLutTexture(value: TextureBinding | null);
    get environmentBrdfLutTexture(): TextureBinding | null;
}
//# sourceMappingURL=PBRMaterial.d.ts.map