import { Effect } from './babylonjs-import';
import { UniformsAndDefinesAndSamplers } from './CustomBabylonMaterials/CullingMaterial';
/**
 * HSV multiplier values for fragment coloring.
 *
 * Each property represents a multiplier for the corresponding HSV channel:
 * - `h`: Multiplier for hue (1 = no change)
 * - `s`: Multiplier for saturation (1 = no change)
 * - `v`: Multiplier for value/brightness (1 = no change)
 *
 * Used to adjust the color output of fragments by scaling their HSV values.
 */
export interface IfcFragmentHsvColorMultiplier {
    /** Multiplier for hue. */
    h: number;
    /** Multiplier for saturation. */
    s: number;
    /** Multiplier for value/brightness. */
    v: number;
}
/**
 * Used to modify the fragments output by materials {@link IfcMaterial} and {@link TransparentIfcMaterial}.
 * If enabled {@link isEnabled} then the following occurs.
 * Each RGB fragment (alpha is untouched) is converted to HSV and multiplied by the corresponding value in {@link multiplier}.
 * The resulting HSV value is then converted back to RGB and output as a fragment, with the original alpha intact.
 * One use case is to set {@link multiplier} `= { s: 1.2, v: 1.5 };` to make colors pop. White becomes whiter, black
 * becomes blacker, red becomes redder etc.
 */
export declare class IfcFragmentHsvColoringSettings {
    /**
     * Indicates whether the HSV parameters are enabled.
     */
    isEnabled: boolean;
    /**
     * Multiplier values for HSV coloring.
     */
    readonly multiplier: IfcFragmentHsvColorMultiplier;
    /**
     * Represents the HSV parameters for a loader.
     */
    constructor(
    /**
     * Indicates whether the HSV parameters are enabled.
     */
    isEnabled: boolean, 
    /**
     * The HSV multiplier values.
     */
    multiplier?: Partial<IfcFragmentHsvColoringSettings['multiplier']>);
    /**
     * Inserts uniforms and defines into the provided `UniformsAndDefinesAndSamplers` object.
     * If the `isEnabled` flag is true, it adds the HSV values and the USE_HSV_MAPPING define.
     * For internal use only.
     * @internal
     * @hidden
     * @param uniformsAndDefines - The object to insert uniforms and defines into.
     */
    _insertUniformsAndDefines(uniformsAndDefines: UniformsAndDefinesAndSamplers): void;
    /**
     * Assigns effect values for the HSV effect. For internal use only.
     * @hidden
     * @internal
     * @param effect - The effect to assign values to.
     */
    _setEffectValues(effect: Effect): void;
}
//# sourceMappingURL=IfcFragmentHsvColoringSettings.d.ts.map