import { BaseSopOperation } from './_Base';
import { DefaultOperationParams } from '../_Base';
import { CoreGroup } from '../../geometry/Group';
import { TypedNodePathParamValue } from '../../Walker';
import { InputCloneMode } from '../../../engine/poly/InputCloneMode';
interface MaterialSopParams extends DefaultOperationParams {
    group: string;
    assignMat: boolean;
    material: TypedNodePathParamValue;
    applyToChildren: boolean;
    cloneMat: boolean;
    shareUniforms: boolean;
    swapCurrentTex: boolean;
    texSrc0: string;
    texDest0: string;
}
export declare class MaterialSopOperation extends BaseSopOperation {
    static readonly DEFAULT_PARAMS: MaterialSopParams;
    static readonly INPUT_CLONED_STATE = InputCloneMode.FROM_NODE;
    static type(): Readonly<'material'>;
    private _globals_handler;
    cook(input_contents: CoreGroup[], params: MaterialSopParams): Promise<CoreGroup>;
    private _apply_materials;
    private _old_mat_by_old_new_id;
    private _materials_by_uuid;
    private _swap_textures;
    private _apply_material;
    private _swap_texture;
}
export {};
