import { WebPlugin } from '@capacitor/core';
import type { QRCodeStudioPlugin, PermissionStatus, ScanOptions, GenerateOptions, QRCodeResult, SaveOptions, SaveResult, HistoryOptions, HistoryResult, AnalyticsOptions, AnalyticsResult, ScanResult, ImageScanOptions, BarcodeGenerateOptions, BarcodeResult } from './definitions';
import { BarcodeFormat } from './definitions';
export declare class QRCodeStudioWeb extends WebPlugin implements QRCodeStudioPlugin {
    private scanner;
    private barcodeReader;
    private videoElement;
    private scanListeners;
    private errorListeners;
    private torchListeners;
    private history;
    private currentStream;
    private scanInterval;
    checkPermissions(): Promise<PermissionStatus>;
    requestPermissions(): Promise<PermissionStatus>;
    startScan(options?: ScanOptions): Promise<void>;
    stopScan(): Promise<void>;
    generate(options: GenerateOptions): Promise<QRCodeResult>;
    saveQRCode(options: SaveOptions): Promise<SaveResult>;
    getHistory(options?: HistoryOptions): Promise<HistoryResult>;
    clearHistory(): Promise<void>;
    getAnalytics(options: AnalyticsOptions): Promise<AnalyticsResult>;
    scan(options?: ScanOptions): Promise<ScanResult>;
    readBarcodesFromImage(options: ImageScanOptions): Promise<ScanResult[]>;
    getSupportedFormats(): Promise<BarcodeFormat[]>;
    enableTorch(): Promise<void>;
    disableTorch(): Promise<void>;
    isTorchAvailable(): Promise<{
        available: boolean;
    }>;
    setZoomRatio(options: {
        ratio: number;
    }): Promise<void>;
    generateBarcode(options: BarcodeGenerateOptions): Promise<BarcodeResult>;
    addListener(eventName: string, listenerFunc: any): Promise<any>;
    removeAllListeners(): Promise<void>;
    private detectQRType;
    private parseQRData;
    private formatQRData;
    private generateVCard;
    private generateVEvent;
    private generateId;
    private saveHistory;
    private loadHistory;
    private generateMockTimeDistribution;
    private mapToZXingFormats;
    private mapFromZXingFormat;
    private mapToJSBarcodeFormat;
    private getProductInfo;
}
