import { TypedNode } from '../../../nodes/_Base';
import type { JsonImportDispatcher } from './Dispatcher';
import { SceneJsonImporter } from '../../../io/json/import/Scene';
import { NodeContext } from '../../../poly/NodeContext';
import { NodeJsonExporterData, NodeJsonExporterUIData, IoConnectionPointsData } from '../export/Node';
import type { NodesJsonImporter } from './Nodes';
import { PolyDictionary } from '../../../../types/GlobalTypes';
type BaseNodeTypeWithIO = TypedNode<NodeContext, any>;
export declare class NodeJsonImporter<T extends BaseNodeTypeWithIO> {
    protected _node: T;
    private dispatcher;
    protected nodesImporter: NodesJsonImporter<any>;
    constructor(_node: T, dispatcher: JsonImportDispatcher, nodesImporter: NodesJsonImporter<any>);
    process_data(scene_importer: SceneJsonImporter, data: NodeJsonExporterData): void;
    process_inputs_data(scene_importer: SceneJsonImporter, data: NodeJsonExporterData): void;
    process_ui_data(scene_importer: SceneJsonImporter, data: NodeJsonExporterUIData): void;
    create_nodes(scene_importer: SceneJsonImporter, data: PolyDictionary<NodeJsonExporterData> | undefined, nodeData: NodeJsonExporterData): void;
    set_selection(data?: string[]): void;
    set_flags(data: NodeJsonExporterData): void;
    set_connection_points(connection_points_data: IoConnectionPointsData | undefined): void;
    private setInputs;
    processNodesUiData(scene_importer: SceneJsonImporter, data: PolyDictionary<NodeJsonExporterUIData>): void;
    set_params(nodeData: NodeJsonExporterData): void;
    private _process_param_data_simple;
    private _process_param_data_complex;
    private _is_param_data_complex;
    set_persisted_config(persisted_config_data: object): void;
    setCustomData(data: NodeJsonExporterData): void;
}
export {};
