import { UseSoundProps, UseSoundReturns } from './type'; /** * @typedef {Object} UseSoundReturns * @property {ErrorEvent | null} error - 오디오 로드 중 발생한 오류 * @property {number} volume - 현재 볼륨 (0.0 ~ 1.0) * @property {number} playbackRate - 현재 재생 속도 (0.5 ~ 4.0) * @property {boolean} isLoop - 반복 재생 여부 * @property {boolean} isMuted - 음소거 여부 * @property {boolean} isLoading - 오디오가 로드 중인지 여부 * @property {boolean} isPlaying - 오디오가 재생 중인지 여부 * @property {boolean} isPaused - 오디오가 일시 정지되었는지 여부 * @property {number} duration - 오디오의 전체 길이 (단위 : 초) * @property {number} currentTime - 오디오의 현재 재생 위치 (단위 : 초) * @property {Fn} play - 오디오 재생 함수 * @property {Fn} pause - 오디오 일시 정지 함수 * @property {Fn} stop - 오디오 정지 함수 * @property {Fn} setMute - 음소거 설정 함수 * @property {Fn} setUnmute - 음소거 해제 함수 * @property {(loop: boolean) => void} setIsLoop - 반복 재생 설정 함수 * @property {(time: number) => void} setPosition - 재생 위치 설정 함수 * @property {(volume: number) => void} setVolume - 볼륨 설정 함수 * @property {(rate: number) => void} setPlaybackRate - 재생 속도 설정 함수 */ /** * 오디오 재생을 관리하는 커스텀 훅 * * @param {Object} props * @param {string} props.url - 오디오 URL * @param {boolean} [props.loop=false] - 반복 재생 여부 * @param {number} [props.defaultVolume=1] - 초기 볼륨. 범위: 0.0 ~ 1.0 * @param {number} [props.defaultPlaybackRate=1] - 초기 재생 속도 범위: 0.5 ~ 4.0 * @param {Fn} [props.onLoad] - 오디오 로드 시 호출할 콜백 함수 * @param {Fn} [props.onPlay] - 오디오 재생 시 호출할 콜백 함수 * @param {Fn} [props.onPause] - 오디오 정지 시 호출할 콜백 함수 * @param {Fn} [props.onEnd] - 오디오 완료 시 호출되는 콜백 함수 * @returns {UseSoundReturns} */ declare function useSound({ url, loop, defaultVolume, defaultPlaybackRate, onLoad, onPlay, onPause, onEnd, }: UseSoundProps): UseSoundReturns; export default useSound;