import { AbstractUiComponent } from "./AbstractUiComponent";
import { UiAudioLevelIndicatorCommandHandler, UiAudioLevelIndicatorConfig } from "../generated/UiAudioLevelIndicatorConfig";
import { TeamAppsUiContext } from "./TeamAppsUiContext";
export declare class UiAudioLevelIndicator extends AbstractUiComponent<UiAudioLevelIndicatorConfig> implements UiAudioLevelIndicatorCommandHandler {
    private $main;
    private $activityDisplay;
    private $canvas;
    private mediaStreamSource;
    private audioContext;
    private mediaStreamToBeClosedWhenUnbinding;
    private canvasContext;
    private maxLevel;
    private maxLevel2;
    private lastDrawingTimestamp;
    constructor(config: UiAudioLevelIndicatorConfig, context: TeamAppsUiContext);
    private analyserNode;
    bindToStream(mediaStream: MediaStream, mediaStreamIsExclusiveToThisComponent: boolean): void;
    private draw;
    /**
     *  Returns a function, that will limit the invocation of the specified function to once in delay. Invocations that come before the end of delay are ignored!
     */
    private throttle;
    unbind(): void;
    onResize(): void;
    doGetMainElement(): HTMLElement;
    setDeviceId(deviceId: string): Promise<void>;
}
