export type LegacyLocationPolicy = 'auto' | 'required' | 'none'; export type NativeLoggingLevel = 'off' | 'errors' | 'events'; export interface UnifiedBleExpoAndroidPermissions { readonly neverForLocation?: boolean; readonly legacyLocation?: LegacyLocationPolicy; } export interface UnifiedBleExpoPermissions { readonly bluetoothAlways?: string | false; readonly android?: UnifiedBleExpoAndroidPermissions; } export interface UnifiedBleExpoPluginOptions { readonly requiredHardware?: boolean; readonly permissions?: UnifiedBleExpoPermissions; readonly background?: { readonly ios?: { readonly mode: 'central'; readonly restoration?: { readonly id: string; readonly generation?: string; }; readonly showPowerAlert?: boolean; }; readonly android?: AndroidBackgroundOptions; }; readonly diagnostics?: { readonly nativeLogging?: NativeLoggingLevel; }; } export type AndroidBackgroundOptions = { readonly mode: 'none'; } | { readonly mode: 'connected-device-foreground-service'; readonly notification: { readonly channelId: string; readonly channelName: string; readonly title: string; readonly body?: string; readonly icon?: string; }; readonly restart?: 'never' | 'while-session-intent-exists'; }; export interface IosNativeProtocolRestoration { readonly identifier: string; readonly namespace: string; readonly epoch: string; readonly clientId: string; readonly hostSessionScope: string; } export declare function validateUnifiedBleExpoPluginOptions(value: unknown): UnifiedBleExpoPluginOptions; export interface RestorationDerivationInput { readonly applicationId: string; readonly restorationId: string; readonly generation?: string; } export declare function deriveIosNativeProtocolRestoration(input: RestorationDerivationInput): IosNativeProtocolRestoration;