import { Destroyable } from '../types';
import { AudioController } from '../audio/audio-controller';
import { RouterVisualizationApi } from '../api/router-visualization-api';
import { AudioInputOutputNode } from '../video';
export type RouterVisualizationSize = 'small' | 'medium' | 'large';
export interface RouterVisualizationTrackUpdate {
    name?: string;
    inputNumber?: number;
    inputLabels?: string[];
}
export interface RouterVisualizationTrack extends RouterVisualizationTrackUpdate {
    maxInputNumber: number;
}
export interface RouterVisualizationSidecarTrack extends RouterVisualizationTrack {
    trackId: string;
}
export interface RouterVisualizationConfig {
    size: RouterVisualizationSize;
    routerVisualizationHTMLElementId: string;
    outputNumber?: number;
    outputLabels?: string[];
    mainTrack?: RouterVisualizationTrack;
    sidecarTracks?: RouterVisualizationSidecarTrack[];
    defaultMatrix?: AudioInputOutputNode[][];
}
export declare const defaultRouterVisualizationLabels: string[];
export declare class RouterVisualization implements Destroyable, RouterVisualizationApi {
    private _config;
    private _routerVisualizationDomController;
    private _routerVisualizationComponent;
    private _audio;
    private readonly _destroyed$;
    constructor(config: RouterVisualizationConfig, audio: AudioController);
    get config(): RouterVisualizationConfig;
    updateMainTrack(track: RouterVisualizationTrackUpdate): void;
    updateSize(size: RouterVisualizationSize): void;
    destroy(): void;
}
