import { NodeMaterialBlock } from "../nodeMaterialBlock";
import type { NodeMaterialBuildState } from "../nodeMaterialBuildState";
import type { NodeMaterialConnectionPoint } from "../nodeMaterialBlockConnectionPoint";
import type { Scene } from "../../../scene";
/**
 * Operations supported by the Trigonometry block
 */
export declare enum TrigonometryBlockOperations {
    /** Cos */
    Cos = 0,
    /** Sin */
    Sin = 1,
    /** Abs */
    Abs = 2,
    /** Exp */
    Exp = 3,
    /** Exp2 */
    Exp2 = 4,
    /** Round */
    Round = 5,
    /** Floor */
    Floor = 6,
    /** Ceiling */
    Ceiling = 7,
    /** Square root */
    Sqrt = 8,
    /** Log */
    Log = 9,
    /** Tangent */
    Tan = 10,
    /** Arc tangent */
    ArcTan = 11,
    /** Arc cosinus */
    ArcCos = 12,
    /** Arc sinus */
    ArcSin = 13,
    /** Fraction */
    Fract = 14,
    /** Sign */
    Sign = 15,
    /** To radians (from degrees) */
    Radians = 16,
    /** To degrees (from radians) */
    Degrees = 17,
    /** To Set a = b */
    Set = 18
}
/**
 * Block used to apply trigonometry operation to floats
 */
export declare class TrigonometryBlock extends NodeMaterialBlock {
    /**
     * Gets or sets the operation applied by the block
     */
    operation: TrigonometryBlockOperations;
    /**
     * Creates a new TrigonometryBlock
     * @param name defines the block name
     */
    constructor(name: string);
    /**
     * Gets the current class name
     * @returns the class name
     */
    getClassName(): string;
    /**
     * Gets the input component
     */
    get input(): NodeMaterialConnectionPoint;
    /**
     * Gets the output component
     */
    get output(): NodeMaterialConnectionPoint;
    protected _buildBlock(state: NodeMaterialBuildState): this;
    serialize(): any;
    _deserialize(serializationObject: any, scene: Scene, rootUrl: string): void;
    protected _dumpPropertiesCode(): string;
}
