/**
 * Sorts vertices
 *
 *
 */
import { AttribClass } from './../../../core/geometry/Constant';
import { TypedSopNode } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { SortMode, SortTargetType } from '../../operations/sop/Sort';
import { SopType } from '../../poly/registers/nodes/types/Sop';
declare class SortSopParamsConfig extends NodeParamsConfig {
    /** @param defines if this node will sort points or objects */
    targetType: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param criteria used to sort */
    mode: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param seed used by the random mode */
    seed: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param axis along which points will be sorted */
    axis: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param attribute */
    attribute: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.STRING>;
    /** @param invert the sort */
    invert: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BOOLEAN>;
}
export declare class SortSopNode extends TypedSopNode<SortSopParamsConfig> {
    paramsConfig: SortSopParamsConfig;
    static type(): SopType;
    initializeNode(): void;
    private _operation;
    cook(inputCoreGroups: CoreGroup[]): void;
    setAttribClass(attribClass: SortTargetType): void;
    attribClass(): SortTargetType;
    setSortMode(mode: SortMode): void;
    setTargetType(targetType: AttribClass.POINT | AttribClass.OBJECT): void;
}
export {};
