import { SolverIterationStamp } from './utils/SolverIterationStamp';
import { NetworkNodeType } from './../../poly/NodeContext';
import { SubnetSopNodeLike, SopSubnetChildrenDisplayController } from './utils/subnet/SopSubnetChildrenDisplayController';
import { NodeParamsConfig } from '../utils/params/ParamsConfig';
import { CoreGroup } from '../../../core/geometry/Group';
import { DisplayNodeController } from '../utils/DisplayNodeController';
declare class SolverSopParamsConfig extends NodeParamsConfig {
    /** @param number of times the nodes inside this node will process the input */
    iterations: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.INTEGER>;
    /** @param Currently, when the child nodes are updated, the solver node does not know that it should recook. Clicking this button forces it to recompute */
    reload: import("../utils/params/ParamsConfig").ParamTemplate<import("../../index_all").ParamType.BUTTON>;
}
export declare class SolverSopNode extends SubnetSopNodeLike<SolverSopParamsConfig> {
    paramsConfig: SolverSopParamsConfig;
    static type(): NetworkNodeType;
    private _iterationStamp;
    readonly childrenDisplayController: SopSubnetChildrenDisplayController;
    readonly displayNodeController: DisplayNodeController;
    initializeNode(): void;
    iterationStamp(): SolverIterationStamp;
    private _createStampNode;
    private _previousFrameCoreGroup;
    previousFrameCoreGroup(): CoreGroup | undefined;
    cook(inputCoreGroups: CoreGroup[]): Promise<void>;
    private _reset;
    private _computeSolverMultipleTimes;
    private computeSolver;
    static PARAM_CALLBACK_reload(node: SolverSopNode): void;
    private param_callback_reload;
}
export {};
