import { ActionType } from 'typesafe-actions';
import * as actions from './actions';
import { AudioError, RestrictedAudioId } from '../..';
import { MutableRefObject } from 'react';
type AudioAction = ActionType<typeof actions>;
export interface Audio {
    /** The source filename */
    src: string;
    /** Duration in seconds */
    duration: number;
    /** An unique identifier for each restricted audio element. For compatibility with KTP. */
    restrictedAudioId?: number;
    /** Ref to audio element */
    audioRef?: MutableRefObject<HTMLAudioElement | null>;
}
export interface NowPlaying {
    audio: Audio;
    durationRemaining: number;
}
export interface AudioState {
    errors: Record<string | RestrictedAudioId, AudioError>;
    nowPlaying: NowPlaying | null;
    playbackTimes: Record<RestrictedAudioId, number>;
}
export default function audioReducer(state: AudioState | undefined, action: AudioAction): AudioState;
export {};
//# sourceMappingURL=reducer.d.ts.map