import { Node, type NodeParams, type SocketsValues } from '../Node.svelte';
import type { Scalar, Socket } from '../../socket';
import { InputControlNode } from './common-data-nodes.svelte';
import type { DataType, SocketType } from '../../plugins/typed-sockets';
export declare class ArrayNode extends InputControlNode<SocketType, 'array'> {
    constructor(params?: NodeParams);
}
export declare class MergeArraysNode extends Node<{
    a: Socket<'any', 'array'>;
    b: Socket<'any', 'array'>;
}, {
    value: Socket<'any', 'array'>;
}> {
    constructor(params?: NodeParams);
    data(inputs?: {
        a: unknown[];
        b: unknown[];
    } | undefined): SocketsValues<{
        value: Socket<'any', 'array'>;
    }>;
}
export declare class GetArrayElementNode extends Node<{
    array: Socket<'any', 'array'>;
    index: Scalar<'integer'>;
}, {
    value: Scalar<'any'>;
}> {
    constructor(params?: NodeParams);
    data(inputs?: {
        array: unknown[];
        index: number;
    } | undefined): SocketsValues<{
        value: Socket<'any', 'scalar'>;
    }>;
}
export declare class MakeArrayNode extends Node<Record<`data-${number}`, Scalar<'any'>>, {
    array: Socket<'any', 'array'>;
}> {
    constructor(params?: NodeParams & {
        numPins?: number;
    });
}
export declare class JoinNode extends Node<{
    array: Socket<'any', 'array'>;
    separator: Scalar<'string'>;
}, {
    value: Scalar<'string'>;
}> {
    constructor(params?: NodeParams);
    data(inputs?: SocketsValues<{
        array: Socket<'any', 'array'>;
        separator: Scalar<'string'>;
    }> | undefined): SocketsValues<{
        value: Scalar<'string'>;
    }> | Promise<SocketsValues<{
        value: Scalar<'string'>;
    }>>;
}
export declare class BreakArrayNode extends Node<{
    array: Socket<DataType, 'array'>;
}, Record<string, Scalar<DataType>>> {
    currentOutputs: Set<string>;
    constructor(params?: NodeParams & {
        type?: DataType;
    });
    previousData: Record<string, unknown>;
    data(inputs?: SocketsValues<{
        array: Socket<DataType, 'array'>;
    }> | undefined): SocketsValues<{}> | Promise<SocketsValues<{}>>;
    updateOutputs(inputs?: {
        array: unknown[];
    }): void;
}
