import { Asset } from 'expo-asset'; export declare enum PitchCorrectionQuality { Low, Medium, High } export declare type AVPlaybackSource = number | { uri: string; overrideFileExtensionAndroid?: string; headers?: { [fieldName: string]: string; }; } | Asset; export declare type AVPlaybackNativeSource = { uri: string; overridingExtension?: string | null; headers?: { [fieldName: string]: string; }; }; export declare type AVPlaybackStatus = { isLoaded: false; androidImplementation?: string; error?: string; } | { isLoaded: true; androidImplementation?: string; uri: string; progressUpdateIntervalMillis: number; durationMillis?: number; positionMillis: number; playableDurationMillis?: number; seekMillisToleranceBefore?: number; seekMillisToleranceAfter?: number; shouldPlay: boolean; isPlaying: boolean; isBuffering: boolean; rate: number; shouldCorrectPitch: boolean; volume: number; isMuted: boolean; isLooping: boolean; didJustFinish: boolean; }; export declare type AVPlaybackStatusToSet = { androidImplementation?: string; progressUpdateIntervalMillis?: number; positionMillis?: number; seekMillisToleranceBefore?: number; seekMillisToleranceAfter?: number; shouldPlay?: boolean; rate?: number; shouldCorrectPitch?: boolean; volume?: number; isMuted?: boolean; isLooping?: boolean; pitchCorrectionQuality?: PitchCorrectionQuality; }; export declare const _DEFAULT_PROGRESS_UPDATE_INTERVAL_MILLIS: number; export declare const _DEFAULT_INITIAL_PLAYBACK_STATUS: AVPlaybackStatusToSet; export declare function getNativeSourceFromSource(source?: AVPlaybackSource | null): AVPlaybackNativeSource | null; export declare function assertStatusValuesInBounds(status: AVPlaybackStatusToSet): void; export declare function getNativeSourceAndFullInitialStatusForLoadAsync(source: AVPlaybackSource | null, initialStatus: AVPlaybackStatusToSet | null, downloadFirst: boolean): Promise<{ nativeSource: AVPlaybackNativeSource; fullInitialStatus: AVPlaybackStatusToSet; }>; export declare function getUnloadedStatus(error?: string | null): AVPlaybackStatus; export interface AV { setStatusAsync(status: AVPlaybackStatusToSet): Promise; getStatusAsync(): Promise; } export interface Playback extends AV { playAsync(): Promise; loadAsync(source: AVPlaybackSource, initialStatus: AVPlaybackStatusToSet, downloadAsync: boolean): any; unloadAsync(): Promise; playFromPositionAsync(positionMillis: number, tolerances?: { toleranceMillisBefore?: number; toleranceMillisAfter?: number; }): Promise; pauseAsync(): Promise; stopAsync(): Promise; replayAsync(status: AVPlaybackStatusToSet): Promise; setPositionAsync(positionMillis: number, tolerances?: { toleranceMillisBefore?: number; toleranceMillisAfter?: number; }): Promise; setRateAsync(rate: number, shouldCorrectPitch: boolean, pitchCorrectionQuality?: PitchCorrectionQuality): Promise; setVolumeAsync(volume: number): Promise; setIsMutedAsync(isMuted: boolean): Promise; setIsLoopingAsync(isLooping: boolean): Promise; setProgressUpdateIntervalAsync(progressUpdateIntervalMillis: number): Promise; } /** * A mixin that defines common playback methods for A/V classes so they implement the `Playback` * interface */ export declare const PlaybackMixin: { playAsync(): Promise; playFromPositionAsync(positionMillis: number, tolerances?: { toleranceMillisBefore?: number | undefined; toleranceMillisAfter?: number | undefined; }): Promise; pauseAsync(): Promise; stopAsync(): Promise; setPositionAsync(positionMillis: number, tolerances?: { toleranceMillisBefore?: number | undefined; toleranceMillisAfter?: number | undefined; }): Promise; setRateAsync(rate: number, shouldCorrectPitch?: boolean, pitchCorrectionQuality?: PitchCorrectionQuality): Promise; setVolumeAsync(volume: number): Promise; setIsMutedAsync(isMuted: boolean): Promise; setIsLoopingAsync(isLooping: boolean): Promise; setProgressUpdateIntervalAsync(progressUpdateIntervalMillis: number): Promise; };