import { BarcodeLinkConfiguration } from './BarcodeLinkConfiguration';
import { BarcodeLinkFlow } from './BarcodeLinkFlow';
import { BarcodeLinkListBehavior } from './BarcodeLinkListBehavior';
import { BarcodeLinkListener } from './BarcodeLinkListener';
import { BarcodeLinkMode } from './BarcodeLinkMode';
import { BarcodeLinkPlatform } from './BarcodeLinkPlatform';

export declare class BarcodeLink {
    private configuration;
    private flow?;
    private flowDelegate;
    private listeners;
    private constructor();
    static forLicenseKey(licenseKey: string): BarcodeLink;
    setSymbologies(symbologies: BarcodeLinkConfiguration["symbologies"]): BarcodeLink;
    setBarcodeLinkMode(barcodeLinkMode: BarcodeLinkMode): BarcodeLink;
    setBarcodeRegexValidation(barcodeRegexValidation: RegExp): BarcodeLink;
    setBarcodeTransformations(barcodeTransformations: unknown): BarcodeLink;
    setPlatform(platform: BarcodeLinkPlatform): BarcodeLink;
    setListBehavior(listBehavior: BarcodeLinkListBehavior): BarcodeLink;
    addListener(listener: BarcodeLinkListener): BarcodeLink;
    removeListener(listener: BarcodeLinkListener): BarcodeLink;
    initialize<T>(flow: BarcodeLinkFlow<T>): Promise<T>;
    dispose(): void;
}
