import { BaseNodeType } from '../_Base';
import { NodeUIDataJson } from './UIData';
import { BaseConnectionPointData } from './io/connections/_Base';
import { CoreGraphNodeId } from '../../../core/graph/CoreGraph';
export interface NodeSerializerData {
    name: string;
    type: string;
    graph_node_id: CoreGraphNodeId;
    is_dirty: boolean;
    ui_data_json: NodeUIDataJson;
    error_message: string | undefined;
    children: CoreGraphNodeId[];
    maxInputsCount: number;
    inputs: Readonly<Array<CoreGraphNodeId | undefined>>;
    input_connection_output_indices: Readonly<Array<number | undefined>> | undefined;
    named_input_connection_points: Readonly<BaseConnectionPointData[]>;
    named_output_connection_points: Readonly<BaseConnectionPointData[]>;
    param_ids: CoreGraphNodeId[];
    override_cloned_state_allowed: boolean;
    inputs_clone_required_states: boolean | boolean[];
    flags?: {
        display?: boolean;
        bypass?: boolean;
        optimize?: boolean;
    };
    selection?: CoreGraphNodeId[];
    polyNode?: {
        locked: boolean;
    };
}
export declare class CoreNodeSerializer {
    protected node: BaseNodeType;
    constructor(node: BaseNodeType);
    dispose(): void;
    toJSON(includeParamComponents?: boolean): NodeSerializerData;
    childrenIds(): number[];
    maxInputsCount(): number;
    inputIds(): Readonly<(CoreGraphNodeId | undefined)[]>;
    inputConnectionOutputIndices(): Readonly<(number | undefined)[]> | undefined;
    namedInputConnectionPoints(): Readonly<BaseConnectionPointData[]>;
    namedOutputConnectionPoints(): Readonly<BaseConnectionPointData[]>;
    to_json_params_from_names(param_names: string[], include_components?: boolean): number[];
    to_json_params(include_components?: boolean): number[];
}
