import { Node, type NodeParams, type SocketsValues } from '../Node.svelte';
import type { DataType } from '../../plugins/typed-sockets';
import type { ExecSocket, Socket } from '../../socket';
export declare class ForEachNode<T extends DataType = DataType> extends Node<{
    exec: ExecSocket;
    array: Socket<DataType, 'array'>;
}, {
    loop: ExecSocket;
    exec: ExecSocket;
    item: Socket<DataType, 'scalar'>;
    index: Socket<'number', 'scalar'>;
}> {
    currentItemIndex?: number;
    numConnections: number;
    constructor(params?: NodeParams);
    execute(input: 'exec', forward: (output: 'exec' | 'loop') => unknown, forwardExec?: boolean): Promise<void>;
    data(inputs?: SocketsValues<{
        exec: ExecSocket;
        array: Socket<'any', 'array'>;
    }> | undefined): SocketsValues<{
        item: Socket<'any', 'scalar'>;
        index: Socket<'number', 'scalar'>;
    }>;
}
