import { ShowParams } from "../client";
import { Dimension } from "../types/dimension";
import { VideomailClientOptions } from "../types/options";
import Despot from "../util/Despot";
import VideomailError from "../util/error/VideomailError";
import Container, { UnloadParams } from "./container";
import Recorder, { StopParams } from "./visuals/recorder";
import Replay from "./visuals/replay";
declare class Visuals extends Despot {
    private readonly container;
    private readonly replay;
    private readonly recorder;
    private readonly recorderInsides;
    private readonly notifier;
    private visualsElement?;
    private built;
    constructor(container: Container, options: VideomailClientOptions);
    private buildNoScriptTag;
    private buildChildren;
    private initEvents;
    private correctDimensions;
    private removeDimensions;
    getRatio(): number;
    private isRecordable;
    isCountingDown(): boolean | undefined;
    build(playerOnly?: boolean, parentElement?: HTMLElement | null): void;
    appendChild(child: HTMLElement): void;
    removeChild(child: HTMLElement): void;
    reset(): void;
    beginWaiting(): void;
    endWaiting(): void;
    stop(params?: StopParams): void;
    back(keepHidden?: boolean, cb?: any): void;
    recordAgain(): void;
    unload(params?: UnloadParams): void;
    isNotifying(): boolean | null | undefined;
    pause(params?: {
        event: MouseEvent;
    }): void;
    resume(): void;
    pauseOrResume(): void;
    recordOrStop(): void;
    getRecorder(): Recorder;
    validate(): boolean;
    getRecordingStats(): import("..").RecordingStats | undefined;
    getAudioSampleRate(): number | undefined;
    isPaused(): boolean | undefined;
    error(err: VideomailError): void;
    hide(): void;
    isHidden(): boolean;
    showVisuals(): void;
    show(params?: ShowParams): void;
    showReplayOnly(): void;
    isRecorderUnloaded(): boolean | undefined;
    isConnecting(): boolean;
    getRecorderWidth(responsive: boolean): Dimension | undefined;
    getRecorderHeight(responsive: boolean, useBoundingClientRect?: boolean): Dimension | undefined;
    limitWidth(width?: number): Dimension | undefined;
    limitHeight(height: number | undefined): Dimension;
    getReplay(): Replay;
    getBoundingClientRect(): DOMRect | undefined;
    checkTimer(elapsedTime: number): void;
    isNotifierBuilt(): boolean;
    isReplayShown(): boolean;
    hideReplay(): void;
    hideRecorder(): void;
    isRecording(): boolean;
    isUserMediaLoaded(): boolean | undefined;
    isConnected(): boolean;
    record(): void;
    setLimitSeconds(limitSeconds: number): void;
    getElement(): HTMLElement | null | undefined;
}
export default Visuals;
