import { BaseSopOperation } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { InputCloneMode } from '../../poly/InputCloneMode';
import { DefaultOperationParams } from '../../../core/operations/_Base';
import { SopType } from '../../poly/registers/nodes/types/Sop';
export declare enum TangentMode {
    MESH = "Normal Maps",
    CURVE = "Curve"
}
export declare const TANGENT_MODES: TangentMode[];
interface TangentSopParams extends DefaultOperationParams {
    group: string;
    mode: number;
    closed: boolean;
    tangentName: string;
}
export declare class TangentSopOperation extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: TangentSopParams;
    static readonly INPUT_CLONED_STATE = InputCloneMode.FROM_NODE;
    static type(): Readonly<SopType.TANGENT>;
    cook(inputCoreGroups: CoreGroup[], params: TangentSopParams): CoreGroup;
    private _process;
    private _processForMesh;
    private _processForCurve;
    private _createTangentForCurve;
}
export {};
