/// <reference path="../tns-platform-declarations/android.d.ts" />

import {Common} from './barcodelib.common';

export declare class Barcodelib extends Common {
    // define your typings manually
    // or..
    // take the ios or android .d.ts files and copy/paste them here

}

export declare namespace com {
    export namespace barcode {
        export class BarcodeUtility {
            public static class: java.lang.Class<com.barcode.BarcodeUtility>;
            public static ACTION_SCAN_KEYBOARD_HELPER_PARAM_RESPONSE: string;
            public static SCANNER_RELEASESCAN: string;
            public static SCANNER_BROADCAST_ACTION: string;
            public static SCANNER_CONTINUOUS: string;
            public static SCANNER_CONTINUOUS_INTREVALTIME: string;
            public static SCANNER_FORMAT_BARCODE: string;
            public static SCANNER_BARCODENOTREPEAT: string;
            public static SCANNER_BROADCAST_EXTRA: string;
            public static SCANNER_SCANKEYCODE_3: string;
            public static SCANNER_SCANKEYCODE_1: string;
            public static SCANNER_FILTERCHARS: string;
            public static SCANNER_FAILUREBROADCAST: string;
            public static SCANNER_BARCODE_1D: string;
            public static SCANNER_VIBRATE: string;
            public static SCANNER_SUFFIX: string;
            public static SCANNER_TAB: string;
            public static SCANNER_ENTER: string;
            public static SCANNER_ENDINDEX: string;
            public static SCANNER_FAILURESOUND: string;
            public static SCANNER_OUTPUTMODE: string;
            public static SCANNER_SOUND: string;
            public static SCANNER_TIMEOUT: string;
            public static SCANNER_PREFIX: string;
            public static SCANNER_CONTINUOUSTIMEOUT: string;
            public static SCANNER_KEYBORADHELPER_OPEN: string;
            public static SCANNER_CONTINUOUSMODE: string;
            public static SCANNER_ILLUMINATIONPOWERLEVEL: string;
            public static SCANNER_STARTINDEX: string;
            public static SCANNER_BARCODE_2D: string;

            public open(param0: globalAndroid.content.Context, param1: com.barcode.BarcodeUtility.ModuleType): void;

            public setBarcodeEncodingFormat(param0: globalAndroid.content.Context, param1: number): void;

            public enablePlayFailureSound(param0: globalAndroid.content.Context, param1: boolean): void;

            public closeKeyboardHelper(param0: globalAndroid.content.Context): void;

            public setScanFailureBroadcast(param0: globalAndroid.content.Context, param1: boolean): void;

            public enableEnter(param0: globalAndroid.content.Context, param1: boolean): void;

            public setOutputMode(param0: globalAndroid.content.Context, param1: number): void;

            public logD(param0: string): void;

            public enableVibrate(param0: globalAndroid.content.Context, param1: boolean): void;

            public setScanOutTime(param0: globalAndroid.content.Context, param1: number): void;

            public startScan(param0: globalAndroid.content.Context, param1: com.barcode.BarcodeUtility.ModuleType): void;

            public enableContinuousScan(param0: globalAndroid.content.Context, param1: boolean): void;

            public filterCharacter(param0: globalAndroid.content.Context, param1: string): void;

            public openKeyboardHelper(param0: globalAndroid.content.Context): void;

            public setContinuousScanIntervalTime(param0: globalAndroid.content.Context, param1: number): void;

            public getKeyboardHelperParam(param0: globalAndroid.content.Context): void;

            public setReleaseScan(param0: globalAndroid.content.Context, param1: boolean): void;

            public setParam_zebra(param0: globalAndroid.content.Context, param1: number, param2: number): void;

            public stopScan(param0: globalAndroid.content.Context, param1: com.barcode.BarcodeUtility.ModuleType): void;

            public close(param0: globalAndroid.content.Context, param1: com.barcode.BarcodeUtility.ModuleType): void;

            public setPrefix(param0: globalAndroid.content.Context, param1: string): void;

            public setScanResultBroadcast(param0: globalAndroid.content.Context, param1: string, param2: string): void;

            public static getInstance(): com.barcode.BarcodeUtility;

            public setContinuousScanTimeOut(param0: globalAndroid.content.Context, param1: number): void;

            public setSuffix(param0: globalAndroid.content.Context, param1: string): void;

            public interceptTrimLeft(param0: globalAndroid.content.Context, param1: number): void;

            public enablePlaySuccessSound(param0: globalAndroid.content.Context, param1: boolean): void;

            public interceptTrimRight(param0: globalAndroid.content.Context, param1: number): void;

            public enableTAB(param0: globalAndroid.content.Context, param1: boolean): void;
        }

        export namespace BarcodeUtility {
            export class ModuleType {
                public static class: java.lang.Class<com.barcode.BarcodeUtility.ModuleType>;
                public static BARCODE_1D: com.barcode.BarcodeUtility.ModuleType;
                public static BARCODE_2D: com.barcode.BarcodeUtility.ModuleType;
                public static AUTOMATIC_ADAPTATION: com.barcode.BarcodeUtility.ModuleType;

                public static values(): native.Array<com.barcode.BarcodeUtility.ModuleType>;

                public static valueOf(param0: string): com.barcode.BarcodeUtility.ModuleType;

                public getValue(): number;
            }
        }
    }
}
