1import { PermissionResponse, PermissionStatus, PermissionHookOptions } from 'expo-modules-core'; 2import * as React from 'react'; 3import { ViewProps } from 'react-native'; 4export declare type BarCodePoint = { 5 x: number; 6 y: number; 7}; 8export declare type BarCodeSize = { 9 height: number; 10 width: number; 11}; 12export declare type BarCodeBounds = { 13 origin: BarCodePoint; 14 size: BarCodeSize; 15}; 16export declare type BarCodeScannerResult = { 17 type: string; 18 data: string; 19 bounds?: BarCodeBounds; 20 cornerPoints?: BarCodePoint[]; 21}; 22export declare type BarCodeEvent = BarCodeScannerResult & { 23 target?: number; 24}; 25export declare type BarCodeEventCallbackArguments = { 26 nativeEvent: BarCodeEvent; 27}; 28export declare type BarCodeScannedCallback = (params: BarCodeEvent) => void; 29export { PermissionResponse, PermissionStatus, PermissionHookOptions }; 30export interface BarCodeScannerProps extends ViewProps { 31 type?: 'front' | 'back' | number; 32 barCodeTypes?: string[]; 33 onBarCodeScanned?: BarCodeScannedCallback; 34} 35export declare class BarCodeScanner extends React.Component<BarCodeScannerProps> { 36 lastEvents: { 37 [key: string]: any; 38 }; 39 lastEventsTimes: { 40 [key: string]: any; 41 }; 42 static Constants: { 43 BarCodeType: any; 44 Type: any; 45 }; 46 static ConversionTables: { 47 type: any; 48 }; 49 static defaultProps: { 50 type: any; 51 barCodeTypes: unknown[]; 52 }; 53 static getPermissionsAsync(): Promise<PermissionResponse>; 54 static requestPermissionsAsync(): Promise<PermissionResponse>; 55 /** 56 * Check or request permissions for the barcode scanner. 57 * This uses both `requestPermissionAsync` and `getPermissionsAsync` to interact with the permissions. 58 * 59 * @example 60 * ```ts 61 * const [status, requestPermission] = BarCodeScanner.usePermissions(); 62 * ``` 63 */ 64 static usePermissions: (options?: PermissionHookOptions | undefined) => [PermissionResponse | null, () => Promise<PermissionResponse | null>, () => Promise<PermissionResponse | null>]; 65 static scanFromURLAsync(url: string, barCodeTypes?: string[]): Promise<BarCodeScannerResult[]>; 66 render(): JSX.Element; 67 onObjectDetected: (callback?: BarCodeScannedCallback | undefined) => ({ nativeEvent, }: BarCodeEventCallbackArguments) => void; 68 convertNativeProps(props: BarCodeScannerProps): BarCodeScannerProps; 69} 70export declare const Constants: { 71 BarCodeType: any; 72 Type: any; 73}, getPermissionsAsync: typeof BarCodeScanner.getPermissionsAsync, requestPermissionsAsync: typeof BarCodeScanner.requestPermissionsAsync, usePermissions: (options?: PermissionHookOptions | undefined) => [PermissionResponse | null, () => Promise<PermissionResponse | null>, () => Promise<PermissionResponse | null>]; 74