import { BaseSopOperation } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { Object3D } from 'three';
import { InputCloneMode } from '../../../engine/poly/InputCloneMode';
import { DefaultOperationParams } from '../../../core/operations/_Base';
export declare enum TransformResetMode {
    RESET_OBJECT = "reset objects transform",
    CENTER_GEO = "center geometries",
    CENTER_GEO_RESET_OBJECT = "center geometry and reset object"
}
export declare const TRANSFORM_RESET_MODES: TransformResetMode[];
interface TransformResetSopParams extends DefaultOperationParams {
    mode: number;
}
export interface CenterCoreGroupOptions {
    applyMatrixToObject: boolean;
    refCoreGroup?: CoreGroup;
}
export interface CenterObjectOptions {
    applyMatrixToObject: boolean;
    refObject?: Object3D;
}
export declare class TransformResetSopOperation extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: TransformResetSopParams;
    static readonly INPUT_CLONED_STATE = InputCloneMode.FROM_NODE;
    static type(): Readonly<'transformReset'>;
    cook(inputCoreGroups: CoreGroup[], params: TransformResetSopParams): CoreGroup;
    private _selectMode;
    private _resetObjects;
    static centerCoreGroup(coreGroup: CoreGroup, options: CenterCoreGroupOptions): CoreGroup;
    static centerObject(object: Object3D, options: CenterObjectOptions): void;
}
export {};
