/**
 * Module to interact with the barcode scanning-specific part of the SDK.
 *
 * @beta
 * @module
 */
/**
 * Data structure to customize the barcode scanning experience in scanBarCode API.
 * All properties in BarCodeConfig are optional and have default values in the platform
 *
 * @beta
 */
export interface BarCodeConfig {
    /**
     * Optional; designates the scan timeout interval in seconds.
     * Default value is 30 seconds, max allowed value is 60 seconds.
     */
    timeOutIntervalInSec?: number;
}
/**
 * Scan Barcode or QRcode using camera
 *
 * @param barCodeConfig - input configuration to customize the barcode scanning experience
 *
 * @returns a scanned code
 *
 * @beta
 */
export declare function scanBarCode(barCodeConfig: BarCodeConfig): Promise<string>;
/**
 * Checks whether or not media has user permission
 *
 * @returns true if the user has granted the app permission to media information, false otherwise
 *
 * @beta
 */
export declare function hasPermission(): Promise<boolean>;
/**
 * Requests user permission for media
 *
 * @returns true if the user has granted the app permission to the media, false otherwise
 *
 * @beta
 */
export declare function requestPermission(): Promise<boolean>;
/**
 * Checks if barCode capability is supported by the host
 * @returns boolean to represent whether the barCode capability is supported
 *
 * @throws Error if {@linkcode app.initialize} has not successfully completed
 *
 * @beta
 */
export declare function isSupported(): boolean;
