import { CSSProperties, ReactNode } from 'react';
import { IArchbaseDataSourceBase } from '@archbase/data';
declare global {
    interface Window {
        BarcodeDetector: any;
    }
}
export interface ArchbaseBarcodeScannerProps<T, ID> {
    /** Fonte de dados onde sera atribuido o valor do scanner (V1 ou V2) */
    dataSource?: IArchbaseDataSourceBase<T>;
    /** Campo onde devera ser atribuido o valor do scanner na fonte de dados */
    dataField?: string;
    /** Valor controlado (uso standalone) */
    value?: string;
    /** Titulo do campo */
    label?: string;
    /** Descricao do campo */
    description?: string;
    /** Ultimo erro ocorrido */
    error?: string;
    /** Indicador se o preenchimento e obrigatorio */
    required?: boolean;
    /** Indicador se o scanner esta desabilitado */
    disabled?: boolean;
    /** Indicador se e somente leitura */
    readOnly?: boolean;
    /** Continuar escaneando apos primeira leitura (default false) */
    continuous?: boolean;
    /** Formatos de codigo aceitos */
    formats?: string[];
    /** Intervalo entre tentativas de deteccao em ms (default 500) */
    scanInterval?: number;
    /** Callback quando um codigo e escaneado */
    onScan?: (code: string, format: string) => void;
    /** Callback quando ocorre um erro */
    onError?: (error: Error) => void;
    /** Largura do video (default 320) */
    width?: number;
    /** Altura do video (default 240) */
    height?: number;
    /** Mostrar botao de lanterna (default false) */
    showTorchButton?: boolean;
    /** Renderizar como botao que abre modal (default false) */
    asModal?: boolean;
    /** Titulo do modal (default 'Escanear codigo') */
    modalTitle?: string;
    /** Label do botao (default 'Escanear') */
    buttonLabel?: string;
    /** Icone do botao */
    buttonIcon?: ReactNode;
    /** Overlay customizado sobre o video */
    overlay?: ReactNode;
    /** Estilo do componente */
    style?: CSSProperties;
    /** Classe CSS */
    className?: string;
    /** Evento quando o valor e alterado */
    onChangeValue?: (value: string) => void;
}
export declare function ArchbaseBarcodeScanner<T, ID>(props: ArchbaseBarcodeScannerProps<T, ID>): import("react/jsx-runtime").JSX.Element;
export declare namespace ArchbaseBarcodeScanner {
    var displayName: string;
}
