import type { EventCallback, YoutubePlayerEvents } from '@react-native-youtube-bridge/core';
import type YoutubePlayer from '../modules/YoutubePlayer';
/**
 * @param player - The Youtube player instance.
 * @param eventType - The type of event to subscribe to. `progress` event is not supported.
 * @param defaultValue - The default value to return if the event is not triggered.
 * @returns The event data.
 * @example
 * ```ts
 * const player = useYouTubePlayer('AbZH7XWDW_k');
 * const playbackRate = useYouTubeEvent(player, 'playbackRateChange', 1);
 * ```
 */
declare function useYouTubeEvent<T extends Exclude<keyof YoutubePlayerEvents, 'progress'>>(player: YoutubePlayer, eventType: T, defaultValue?: YoutubePlayerEvents[T]): YoutubePlayerEvents[T] | null;
/**
 * @param player - The Youtube player instance.
 * @param eventType - The type of event to subscribe to.
 * @param callback - The callback to call when the event is triggered.
 * @param deps - The dependencies to watch for changes.
 * @returns void
 * @example
 * ```ts
 * const player = useYouTubePlayer('AbZH7XWDW_k');
 * useYouTubeEvent(player, 'ready', (playerInfo) => {
 *   console.log('Player is ready!');
 *   console.log('rates', playerInfo.availablePlaybackRates);
 *   console.log('vol', playerInfo.volume);
 *   console.log('muted', playerInfo.muted);
 * });
 * ```
 */
declare function useYouTubeEvent<T extends keyof YoutubePlayerEvents>(player: YoutubePlayer, eventType: T, callback: EventCallback<YoutubePlayerEvents[T]>, deps?: React.DependencyList): void;
/**
 * @param player - The Youtube player instance.
 * @param eventType - `progress` event only.
 * @param throttleMs - The throttle time in milliseconds (default 1000ms).
 * @returns The event data.
 * @example
 * ```ts
 * const player = useYouTubePlayer('AbZH7XWDW_k');
 * const progress = useYouTubeEvent(player, 'progress', 1000);
 * ```
 */
declare function useYouTubeEvent(player: YoutubePlayer, eventType: 'progress', throttleMs?: number): YoutubePlayerEvents['progress'] | null;
export default useYouTubeEvent;
//# sourceMappingURL=useYouTubeEvent.d.ts.map