import { Camera } from "../camera";
import { Scanner } from "../scanner";
import { SearchArea } from "../searchArea";
import { SingleImageModePlatformSettings } from "../singleImageModeSettings";
import { BarcodePicker } from "./barcodePicker";
import { CameraManager } from "./cameraManager";
export declare class GUI {
    static readonly grandParentElementClassName: string;
    static readonly parentElementClassName: string;
    static readonly hiddenClassName: string;
    static readonly hiddenOpacityClassName: string;
    static readonly videoElementClassName: string;
    static readonly scanditLogoImageElementClassName: string;
    static readonly laserContainerElementClassName: string;
    static readonly viewfinderElementClassName: string;
    static readonly cameraSwitcherElementClassName: string;
    static readonly cameraRecoveryElementClassName: string;
    static readonly torchTogglerElementClassName: string;
    static readonly cameraUploadElementClassName: string;
    static readonly flashColorClassName: string;
    static readonly flashWhiteClassName: string;
    static readonly flashInsetClassName: string;
    static readonly opacityPulseClassName: string;
    static readonly mirroredClassName: string;
    static readonly pausedClassName: string;
    readonly videoElement: HTMLVideoElement;
    private readonly cameraSwitcherElement;
    private readonly torchTogglerElement;
    private readonly cameraRecoveryElement;
    private readonly scanner;
    private readonly singleImageModeEnabled;
    private readonly singleImageModeSettings;
    private readonly grandParentElement;
    private readonly parentElement;
    private readonly laserContainerElement;
    private readonly laserActiveImageElement;
    private readonly laserPausedImageElement;
    private readonly viewfinderElement;
    private readonly cameraUploadElement;
    private readonly cameraUploadLabelElement;
    private readonly cameraUploadInputElement;
    private readonly cameraUploadProgressElement;
    private readonly visibilityListener;
    private readonly videoPauseListener;
    private readonly videoResizeListener;
    private readonly webGLContextLostListener;
    private readonly newScanSettingsListener;
    private readonly contextCreatedShowLogoListener;
    private readonly contextCreatedActivateGUIListener;
    private readonly resizeObserver;
    private readonly cameraUploadCallback;
    private readonly mirrorImageOverrides;
    private contextWebGL?;
    private context2d?;
    private cameraManager?;
    private originElement;
    private scanningPaused;
    private visible;
    private guiStyle;
    private videoFit;
    private customLaserArea?;
    private customViewfinderArea?;
    private cameraUploadInProgress;
    private cameraSwitchInProgress;
    private dataCaptureContextCreated;
    private isVideoElementDetached;
    constructor(options: {
        scanner: Scanner;
        originElement: HTMLElement;
        singleImageModeEnabled: boolean;
        singleImageModeSettings: SingleImageModePlatformSettings;
        scanningPaused: boolean;
        visible: boolean;
        guiStyle: BarcodePicker.GuiStyle;
        videoFit: BarcodePicker.ObjectFit;
        hideLogo: boolean;
        cameraRecoveryText: string;
        laserArea?: SearchArea;
        viewfinderArea?: SearchArea;
        cameraUploadCallback(): Promise<void>;
    });
    destroy(): void;
    setCameraManager(cameraManager: CameraManager): void;
    pauseScanning(): void;
    resumeScanning(): void;
    isVisible(): boolean;
    setVisible(visible: boolean): void;
    isMirrorImageEnabled(): boolean;
    setMirrorImageEnabled(enabled: boolean, override: boolean): void;
    setGuiStyle(guiStyle: BarcodePicker.GuiStyle): void;
    setLaserArea(area?: SearchArea): void;
    setViewfinderArea(area?: SearchArea): void;
    setVideoFit(objectFit: BarcodePicker.ObjectFit): void;
    reassignOriginElement(originElement: HTMLElement): void;
    flashGUI(): void;
    getImageData(imageData?: Uint8Array): Uint8Array | undefined;
    getVideoCurrentTime(): number;
    setCameraSwitcherVisible(visible: boolean): void;
    isCameraRecoveryVisible(): boolean;
    setCameraRecoveryVisible(visible: boolean): void;
    setTorchTogglerVisible(visible: boolean): void;
    playVideo(): void;
    setVideoVisible(visible: boolean): void;
    setCameraType(cameraType: Camera.Type): void;
    private setCameraUploadGuiBusyScanning;
    private setupContext;
    private setupWebGL;
    private setupVideoElement;
    private setupCameraUploadGuiAssets;
    private setupFullGuiAssets;
    private flashLaser;
    private flashViewfinder;
    private resize;
    private resizeCameraUpload;
    private resizeVideo;
    private checkAndRecoverPlayback;
    private updateCameraUploadProgress;
    private cameraUploadImageLoad;
    private cameraUploadFileProcess;
    private cameraUploadFile;
    private cameraSwitcherListener;
    private cameraRecoveryListener;
    private setupCameraSwitcher;
    private setupCameraRecovery;
    private setupTorchToggler;
    private showScanditLogo;
    private activateGUI;
    private handleNewScanSettings;
    private handleVideoDisplay;
    private handleVideoPause;
    private handleVideoResize;
    private handleWebGLContextLost;
}
