import { BaseSopOperation } from './_Base';
import { DefaultOperationParams } from '../_Base';
import { CoreGroup } from '../../geometry/Group';
import { TypedNodePathParamValue } from '../../Walker';
import { Mesh } from 'three/src/objects/Mesh';
import { Material } from 'three/src/materials/Material';
import { InputCloneMode } from '../../../engine/poly/InputCloneMode';
interface InstanceSopParams extends DefaultOperationParams {
    attributesToCopy: string;
    applyMaterial: boolean;
    material: TypedNodePathParamValue;
}
export declare class InstanceSopOperation extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: InstanceSopParams;
    static readonly INPUT_CLONED_STATE: InputCloneMode[];
    static type(): Readonly<'instance'>;
    private _globals_handler;
    private _geometry;
    cook(input_contents: CoreGroup[], params: InstanceSopParams): Promise<CoreGroup>;
    private _get_material;
    _applyMaterial(object: Mesh, material: Material): Promise<void>;
    private _create_instance;
}
export {};
