import React from "react";
import { ScanbotCameraProps, ScanbotCameraState } from "./scanner-view";
import { IBarcodeScannerHandle } from "./interfaces/i-barcode-scanner-handle";
import { ShutterButtonAction } from "./view/shutter-button";
import AnimatedBarcodeSelectionOverlay from "./view/barcode-polygon/animated-barcode-selection-overlay";
import { BarcodeScannerViewConfiguration } from "./model/configuration/barcode-scanner-view-configuration";
import { Size } from "./utils/dto/Size";
import { BarcodeItem, type DeepPartial } from "./core-types";
import { BarcodeScanner } from "./core/compiled/bridge/BarcodeScanner";
import FinderScannerView from "./finder-scanner-view";
export declare class BarcodeScannerProps extends ScanbotCameraProps {
}
export declare class BarcodeScannerState extends ScanbotCameraState {
    action: ShutterButtonAction;
}
export default class BarcodeScannerView extends FinderScannerView<BarcodeScannerProps, BarcodeScannerState> implements IBarcodeScannerHandle {
    shouldComputeSize: boolean;
    private _configuration;
    overlay?: AnimatedBarcodeSelectionOverlay | undefined;
    barcodeScannerHandle: BarcodeScanner | null;
    readonly barcodes: BarcodeItem[];
    private detectionRunning;
    private fpsLimiter;
    constructor(props: BarcodeScannerProps);
    get configuration(): BarcodeScannerViewConfiguration;
    updateConfiguration(configuration: DeepPartial<BarcodeScannerViewConfiguration>): void;
    get enabled(): boolean;
    private static root;
    static create(configuration: BarcodeScannerViewConfiguration): Promise<BarcodeScannerView>;
    private readonly updateDimensionsCallback;
    onSdkReady(): Promise<void>;
    /**
     * React Overrides
     */
    componentDidMount(): Promise<void>;
    componentDidUpdate(prevProps: Readonly<BarcodeScannerProps>, prevState: Readonly<BarcodeScannerState>, snapshot?: any): void;
    componentWillUnmount(): void;
    updateDimensions(): Promise<void>;
    detect(): Promise<void>;
    private recognizeBarcodes;
    desiredRecognitionResolution: number | undefined;
    setRecognitionResolution(resolution: number): void;
    getResolution(): Promise<Size>;
    saveExtractedImageData(): void;
    updateTorch(enabled: boolean): void;
    render(): React.JSX.Element;
}
