import { NodeContext } from '../../../poly/NodeContext';
import { ConnectionPointTypeMap } from './connections/ConnectionMap';
import { TypedNode } from '../../_Base';
export declare class OutputsController<NC extends NodeContext> {
    private node;
    private _has_outputs;
    private _named_output_connection_points;
    private _has_named_outputs;
    private _connections;
    constructor(node: TypedNode<NC, any>);
    private _onPlayingStateChangeBound;
    private _onPlayingStateChange;
    private _outputIndexCache;
    private _clearCache;
    dispose(): void;
    setHasOneOutput(): void;
    setHasNoOutput(): void;
    hasOutputs(): boolean;
    hasNamedOutputs(): boolean;
    hasNamedOutput(name: string): boolean;
    namedOutputConnectionPoints(): Readonly<ConnectionPointTypeMap[NC][]> | undefined;
    namedOutputConnection(index: number): Readonly<ConnectionPointTypeMap[NC]> | undefined;
    getNamedOutputIndex(name: string): number;
    getOutputIndex(output_index_or_name: number | string): number;
    private _getOutputIndex;
    namedOutputConnectionPointsByName(name: string): ConnectionPointTypeMap[NC] | undefined;
    setNamedOutputConnectionPoints(connection_points: ConnectionPointTypeMap[NC][], set_dirty?: boolean): void;
    used_output_names(): string[];
}
