import { TurboModule } from 'react-native';
import { AudioDevicesInfo, AudioFocusType, PermissionStatus } from '../system/types';
type OptionsMap = {
    [key: string]: string | boolean | number | undefined;
};
type NotificationOpResponse = {
    success: boolean;
    error?: string;
};
type NotificationType = 'playback' | 'recording' | 'simple';
interface Spec extends TurboModule {
    install(): boolean;
    getDevicePreferredSampleRate(): number;
    isFfmpegEnabled(): boolean;
    setAudioSessionActivity(enabled: boolean): Promise<void>;
    setAudioSessionOptions(category: string, mode: string, options: Array<string>, allowHaptics: boolean, notifyOthersOnDeactivation: boolean): void;
    disableSessionManagement(): void;
    observeAudioInterruptions(focusType: AudioFocusType, enabled: boolean): void;
    activelyReclaimSession(enabled: boolean): void;
    observeVolumeChanges(enabled: boolean): void;
    requestRecordingPermissions(): Promise<PermissionStatus>;
    checkRecordingPermissions(): Promise<PermissionStatus>;
    requestNotificationPermissions(): Promise<PermissionStatus>;
    checkNotificationPermissions(): Promise<PermissionStatus>;
    getDevicesInfo(): Promise<AudioDevicesInfo>;
    setInputDevice(deviceId: string): Promise<void>;
    showNotification(type: NotificationType, key: string, options: OptionsMap): Promise<NotificationOpResponse>;
    hideNotification(key: string): Promise<NotificationOpResponse>;
    isNotificationActive(key: string): Promise<boolean>;
    readAndroidReleaseAssetBytesAsBase64(assetPath: string): Promise<string>;
}
declare const NativeAudioAPIModule: Spec;
export { NativeAudioAPIModule };
//# sourceMappingURL=NativeAudioAPIModule.web.d.ts.map