import { ColorCompat } from "../math";
import type { TextureCompat } from "../textures";
export interface MaterialCompatParameters {
    readonly color?: ColorCompat;
    readonly map?: TextureCompat;
    readonly transparent?: boolean;
    readonly opacity?: number;
    readonly side?: "FrontSide" | "BackSide" | "DoubleSide";
}
export declare class MaterialCompat {
    readonly type: string;
    transparent: boolean;
    opacity: number;
    side: "FrontSide" | "BackSide" | "DoubleSide";
    constructor(parameters?: MaterialCompatParameters);
}
export declare class MeshBasicMaterialCompat extends MaterialCompat {
    readonly type = "MeshBasicMaterial";
    color: ColorCompat;
}
export declare class MeshLambertMaterialCompat extends MaterialCompat {
    readonly type = "MeshLambertMaterial";
    approximation: string;
}
export declare class MeshPhongMaterialCompat extends MaterialCompat {
    readonly type = "MeshPhongMaterial";
    shininess: number;
    approximation: string;
}
export declare class MeshStandardMaterialCompat extends MaterialCompat {
    readonly type: string;
    roughness: number;
    metalness: number;
}
export declare class MeshPhysicalMaterialCompat extends MeshStandardMaterialCompat {
    readonly type = "MeshPhysicalMaterial";
    clearcoat: number;
    transmission: number;
    ior: number;
}
export declare class ShaderMaterialCompat extends MaterialCompat {
    readonly type = "ShaderMaterial";
    uniforms: Record<string, unknown>;
    vertexShader: string;
    fragmentShader: string;
}
export declare class PointsMaterialCompat extends MaterialCompat {
    readonly type = "PointsMaterial";
    size: number;
    sizeAttenuation: boolean;
    constructor(parameters?: MaterialCompatParameters & {
        readonly size?: number;
        readonly sizeAttenuation?: boolean;
    });
}
export declare class LineBasicMaterialCompat extends MaterialCompat {
    readonly type = "LineBasicMaterial";
    linewidth: number;
}
export declare class SpriteMaterialCompat extends MaterialCompat {
    readonly type = "SpriteMaterial";
    rotation: number;
    sizeAttenuation: boolean;
    constructor(parameters?: MaterialCompatParameters & {
        readonly rotation?: number;
        readonly sizeAttenuation?: boolean;
    });
}
export declare const THREE_COMPAT_COMPAT_MATERIAL_TYPES: readonly ["MeshBasicMaterial", "MeshLambertMaterial", "MeshPhongMaterial", "MeshStandardMaterial", "MeshPhysicalMaterial", "ShaderMaterial", "PointsMaterial", "LineBasicMaterial", "SpriteMaterial"];
//# sourceMappingURL=index.d.ts.map