///
import { IconButtonProps } from '../icon-button/types';
import { AudioPlayerVolumeControlOverridesProps, AudioPlayerVolumeControlProps } from './components/volume-control/types';
import { AudioPlayerForwardButtonProps } from './components/forward-button/types';
import { AudioPlayerPlayPauseButtonProps } from './components/play-pause-button/types';
import { AudioPlayerReplayButtonProps } from './components/replay-button/types';
import { AudioPlayerSkipNextButtonProps } from './components/skip-next-button/types';
import { AudioPlayerSkipPreviousButtonProps } from './components/skip-previous-button/types';
import { AudioPlayerTimeFormatFn } from './components/time-display/types';
import { AudioPlayerPlaybackSpeedControlOverridesProps, AudioPlayerPlaybackSpeedControlProps } from './components/playback-speed-control/types';
import { MQ } from '../utils';
import { ButtonSize } from '../button/types';
export interface HlsInstance {
resumeBuffering: () => void;
pauseBuffering: () => void;
destroy: () => void;
stopLoad: () => void;
detachMedia: () => void;
}
export interface AudioFunctionDependencies {
autoPlay: boolean;
src: string;
live: NonNullable;
loading: boolean;
duration: number;
playing: boolean;
isHlsStream: boolean;
hlsInstance: React.RefObject;
showLoaderTimeoutRef: React.MutableRefObject;
currentTimeRef: React.MutableRefObject;
audioRef: React.RefObject;
setLoading: React.Dispatch>;
setCurrentTime: React.Dispatch>;
setPlayState: React.Dispatch>;
setVolume: React.Dispatch>;
setPlaybackSpeed: React.Dispatch>;
setDuration: React.Dispatch>;
setDisplayDuration: React.Dispatch>;
setBuffered: React.Dispatch>;
}
export interface AudioPlayerProviderContext {
id: string;
playing: boolean;
canPause: boolean;
loading: boolean;
audioRef: React.RefObject;
audioSectionRef: React.RefObject;
togglePlay: () => void;
getPlayPauseButtonProps: (props: AudioPlayerPlayPauseButtonProps) => IconButtonProps & {
playing: boolean;
canPause: boolean;
};
getTimeDisplayProps: () => {
format: AudioPlayerTimeFormatFn;
currentTime: number;
duration: number;
};
getSeekBarProps: () => {
duration: number;
currentTime: number;
onChange: (value: number) => void;
buffered: TimeRanges | undefined;
};
getVolumeControlProps: (props: AudioPlayerVolumeControlProps) => {
overrides: AudioPlayerVolumeControlOverridesProps;
keyboardShortcuts?: {
muteToggle: string | string[];
};
layout?: 'collapsed' | 'vertical' | 'horizontal' | 'horizontal-expanded';
onChange: (value: number) => void;
volume: number;
initialVolume: 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1;
muteButtonSize?: ButtonSize;
};
getPlaybackSpeedControlProps: (props: AudioPlayerPlaybackSpeedControlProps) => {
overrides: AudioPlayerPlaybackSpeedControlOverridesProps;
onChange: (value: number) => void;
useModal: MQ;
playbackSpeed: number;
buttonSize?: ButtonSize;
};
getSkipPreviousButtonProps: (props: AudioPlayerSkipPreviousButtonProps) => IconButtonProps;
getSkipNextButtonProps: (props: AudioPlayerSkipNextButtonProps) => IconButtonProps;
getForwardButtonProps: (props: AudioPlayerForwardButtonProps) => IconButtonProps;
getReplayButtonProps: (props: AudioPlayerReplayButtonProps) => IconButtonProps;
}
export interface AudioElementProps extends Omit, 'controls'> {
audioRef?: React.RefObject;
isHlsStream?: boolean;
}
export interface AudioPlayerComposableProps extends Omit, 'controls'> {
children: React.ReactNode;
live?: boolean;
autoPlay?: boolean;
src: string;
ariaLandmark?: string;
keyboardShortcuts?: {
jumpToStart: string | string[];
jumpToEnd: string | string[];
};
initialVolume?: 0 | 0.1 | 0.2 | 0.3 | 0.4 | 0.5 | 0.6 | 0.7 | 0.8 | 0.9 | 1;
initialTime?: number;
}
export declare enum AudioEvents {
Play = "onPlay",
Pause = "onPause",
Waiting = "onWaiting",
CanPlay = "onCanPlay",
Ended = "onEnded",
VolumeChange = "onVolumeChange",
DurationChange = "onDurationChange",
TimeUpdate = "onTimeUpdate",
Progress = "onProgress"
}
//# sourceMappingURL=types.d.ts.map