import IBarcodeScannerDataMessage from './IBarcodeScannerDataMessage';
export interface IBarcodeScannerOptions {
    timeout?: number;
    cancelPrevious?: boolean;
    scannerId?: number;
}
export interface IBarcodeScannerResponse {
    stop: () => Promise<void>;
    onData: (listener: (data: string) => void) => void;
    onError: (listener: (error: Error) => void) => void;
}
export default interface IBarcodeScanner {
    getVersion(): Promise<string>;
    start(userOptions?: Omit<IBarcodeScannerOptions, 'scannerId'>): Promise<{
        stop: () => Promise<void>;
        onData: (listener: (data: string) => void) => void;
        onError: (listener: (error: Error) => void) => void;
    }>;
    handleMessageData(msg: IBarcodeScannerDataMessage): void;
}
