import { LicenseListener, TextResultListener } from '.';
import { BarcodeReaderCommon, TextResult } from './common';
declare class LicenseListenerImpl extends NSObject// native delegates mostly always extend NSObject
 implements DBRLicenseVerificationListener {
    private callback;
    static ObjCProtocols: {
        prototype: DBRLicenseVerificationListener;
    }[];
    static new(): LicenseListenerImpl;
    DBRLicenseVerificationCallbackError(isSuccess: boolean, error: NSError): void;
    setCallback(callback: (isSuccess: boolean, error: any) => void): void;
}
/**
 * "Listener" for text result events
 *
 * @link https://v7.docs.nativescript.org/core-concepts/ios-runtime/how-to/objc-subclassing#typescript-delegate-example
 */
declare class TextResultListenerImpl extends NSObject// native delegates mostly always extend NSObject
 implements DBRTextResultListener {
    private callback;
    private wrapResult;
    static ObjCProtocols: {
        prototype: DBRTextResultListener;
    }[];
    static new(): TextResultListenerImpl;
    textResultCallbackImageDataResults(frameId: number, imageData: iImageData, results: NSArray<iTextResult> | iTextResult[]): void;
    setCallback(callback: TextResultListener, wrapResult: (results: NSArray<iTextResult>) => TextResult[]): void;
}
export declare class BarcodeReader extends BarcodeReaderCommon {
    dbr: DynamsoftBarcodeReader;
    licenseListener: LicenseListenerImpl;
    textResultListener: TextResultListenerImpl;
    constructor();
    initLicense(license: string, listener?: LicenseListener): void;
    initRuntimeSettingsWithString(template: string): void;
    decodeFrameAsync(frame: any): Promise<TextResult[]>;
    decodeFrame(frame: any): TextResult[];
    decodeBitmap(bitmap: any): TextResult[];
    decodeFile(file: string): TextResult[];
    decodeBase64(base64: string): TextResult[];
    wrapResult(results: NSArray<iTextResult>): TextResult[];
    base642UIImage(base64: string): UIImage;
    setCameraEnhancer(dce: any): void;
    startScanning(): void;
    stopScanning(): void;
    setTextResultListener(listener: TextResultListener): void;
}
export {};
