import { ParamsInitData } from '../../../engine/nodes/utils/io/IOController';
import { BaseNodeType } from '../../../engine/nodes/_Base';
import { BaseOperation } from '../_Base';
import { OperationInputsController } from './utils/InputsController';
import { NodeContext } from '../../poly/NodeContext';
import { DefaultOperationParams } from '../../../core/operations/_Base';
export declare class BaseOperationContainer<NC extends NodeContext> {
    protected operation: BaseOperation<NC>;
    protected name: string;
    protected params: DefaultOperationParams;
    private _path_params;
    constructor(operation: BaseOperation<NC>, name: string, init_params: ParamsInitData);
    pathParamResolveRequired(): boolean;
    resolvePathParams(node_start: BaseNodeType): void;
    private _applyDefaultParams;
    private _applyInitParams;
    private _convertParamData;
    protected _inputs: BaseOperationContainer<NC>[] | undefined;
    setInput(index: number, input: BaseOperationContainer<NC>): void;
    inputsCount(): number;
    private _inputsController;
    protected inputsController(): OperationInputsController<NC>;
    private _initClonedStates;
    inputCloneRequired(index: number): boolean;
    overrideInputCloneState(state: boolean): void;
    cook(input_contents: any[]): any;
}
