import { BaseSopOperation } from './_Base';
import { CoreGroup } from '../../../core/geometry/Group';
import { InputCloneMode } from '../../../engine/poly/InputCloneMode';
import { DefaultOperationParams } from '../../../core/operations/_Base';
import { CoreObjectType, ObjectContent } from '../../../core/geometry/ObjectContent';
import { NodeErrorState } from '../../nodes/utils/states/Error';
import { NodeContext } from '../../poly/NodeContext';
interface PreserveMaterialOptions {
    preserveMaterials: boolean;
}
interface MergeSopParams extends PreserveMaterialOptions, DefaultOperationParams {
    compact: boolean;
}
export declare class MergeSopOperation extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: MergeSopParams;
    static readonly INPUT_CLONED_STATE = InputCloneMode.FROM_NODE;
    static type(): Readonly<'merge'>;
    cook(inputCoreGroups: CoreGroup[], params: MergeSopParams): CoreGroup;
    static makeCompact(allObjects: ObjectContent<CoreObjectType>[], options: PreserveMaterialOptions, errorState?: NodeErrorState<NodeContext>): ObjectContent<CoreObjectType>[];
}
export {};
