export interface ITextureMapping {
    TranslationS?: number;
    TranslationT?: number;
    ScaleS?: number;
    ScaleT?: number;
    Rotation?: number;
}
export declare type EnvMapType = "Spherical" | "Equirectangular";
/** Representation of IG.GFX materials. This structure is also used
 * for material definitions embedded into IGXC files.
 * The basic parameters, from Ambient to Transparency, are defined by
 * the Phong material model.
 */
export declare class Material {
    /**
     * Replaces all paths with absolute hashed versions
     *
     *
     * @param {IMaterialData} { material, hashes, basePath }
     */
    static fixMaterialPaths<T extends Material>(material: T, basePath?: string, hashes?: Record<string, string>): T;
    /** Name of the material. */
    name?: string;
    /** Type of the Material, if not set use "LegacyPhong" */
    Type?: "LegacyPhong" | "Phong2";
    /** DEPRECATED Scalar ambient term, 0 to 1. */
    Ambient: number;
    /** Diffuse red, 0 to 1. */
    DiffuseR: number;
    /** Diffuse green, 0 to 1. */
    DiffuseG: number;
    /** Diffuse blue, 0 to 1. */
    DiffuseB: number;
    /** Specular red, 0 to 1. */
    SpecularR: number;
    /** Specular green, 0 to 1. */
    SpecularG: number;
    /** Specular blue, 0 to 1. */
    SpecularB: number;
    /** Shininess exponent. */
    Shininess: number;
    /** Emissive red, 0 to 1. */
    EmissiveR: number;
    /** Emissive green, 0 to 1. */
    EmissiveG: number;
    /** Emissive blue, 0 to 1. */
    EmissiveB: number;
    /**	DEPRECATED Ancient way of giving an url of a diffuse map */
    Texture?: string;
    /** Transparency, 0 (solid) to 1 (gully transparent). */
    Transparency: number;
    /** Ambient Occlusion Map for geometry size */
    AO?: {
        Intensity: number;
        /** Absolute or relative URL. */
        Map: string;
        OffsetS?: number;
        OffsetT?: number;
        RepeatS?: number;
        RepeatT?: number;
    };
    /** Diffuse Map for patch size */
    Diffuse?: {
        /** Absolute or relative URL. */
        Map: string;
        Mapping?: ITextureMapping;
    };
    /** Bump Map for patch size */
    Bump?: {
        /** Absolute or relative URL. */
        Map: string;
        Mapping?: ITextureMapping;
        Scale?: number;
    };
    /** Normal Map for patch size */
    Normal?: {
        /** Absolute or relative URL. */
        Map: string;
        Mapping: ITextureMapping;
        ScaleU?: number;
        ScaleV?: number;
    };
    /** Scale for geometry normal map */
    GeoNormalScaleU?: number;
    GeoNormalScaleV?: number;
    /** Alpha Map for patch size */
    Alpha?: {
        /** Absolute or relative URL. */
        Map: string;
        Mapping?: ITextureMapping;
    };
    /** Specular Map (Phong Material) for patch size */
    Specular?: {
        /** Absolute or relative URL. */
        Map: string;
        Mapping?: ITextureMapping;
    };
    /** Roughness Map (physically based materials) for patch size */
    Roughness?: {
        /** Absolute or relative URL. */
        Map: string;
        Mapping?: ITextureMapping;
    };
    /** Metalness Map (physically based materials) for patch size */
    Metalness?: {
        /** Absolute or relative URL. */
        Map: string;
        Mapping?: ITextureMapping;
    };
    /** Texture mapping as global settings for patch size */
    Mapping?: ITextureMapping;
    /** Taxonomy information about Material, e.g. gold or rough leather */
    Meta: {
        Taxonomy: {
            [key: string]: any;
        };
    };
    constructor();
}
