import { EventDispatcher, BaseEvent } from 'three';
import { BaseNodeByContextMap, NodeContext } from '../../../poly/NodeContext';
import { TypedNode } from '../../_Base';
import { ConnectionPointTypeMap } from './connections/ConnectionMap';
interface DisconnectionOptions {
    setInput?: boolean;
    ignoreLockedState?: boolean;
}
export declare const NODE_CONNECTION_TRIGGERED_EVENT_NAME: 'triggered';
export declare const NODE_CONNECTION_TRIGGERED_EVENT: BaseEvent<'triggered'>;
export declare class TypedNodeConnection<NC extends NodeContext> {
    private _nodeSrc;
    private _nodeDest;
    private _outputIndex;
    private _inputIndex;
    private static _nextId;
    private _id;
    constructor(_nodeSrc: TypedNode<NC, any>, _nodeDest: TypedNode<NC, any>, _outputIndex?: number, _inputIndex?: number);
    id(): number;
    nodeSrc(): BaseNodeByContextMap[NC];
    nodeDest(): BaseNodeByContextMap[NC];
    outputIndex(): number;
    inputIndex(): number;
    srcConnectionPoint(): ConnectionPointTypeMap[NC] | undefined;
    destConnectionPoint(): ConnectionPointTypeMap[NC] | undefined;
    disconnect(options?: DisconnectionOptions): void;
    private __eventDispatcher;
    _eventDispatcher(): EventDispatcher<{
        triggered: any;
    }> | undefined;
    eventDispatcher(): EventDispatcher<{
        triggered: any;
    }>;
}
export {};
