export type QrScanFacingMode = 'environment' | 'user'; export interface QrScanOptions { video: HTMLVideoElement; facingMode?: QrScanFacingMode; deviceId?: string; onResult: (value: string) => void; onError?: (error: Error) => void; formats?: string[]; scanIntervalMs?: number; onReady?: (track: MediaStreamTrack) => void; continuous?: boolean; } export interface QrScanController { stop: () => void; setTorch: (enabled: boolean) => Promise; isTorchSupported: () => boolean; getStream: () => MediaStream | null; } export declare const isQrScanSupported: () => boolean; export declare const isCameraAvailable: () => boolean; export declare const listVideoInputDevices: () => Promise; export declare const startQrScan: (options: QrScanOptions) => Promise; export declare const scanQrCodeOnce: (options: Omit) => Promise;