import { AudioSource } from '../types/AudioSource';
export type AudioSourceInput = MediaStream | HTMLMediaElement | HTMLAudioElement | HTMLVideoElement | AudioNode | AudioSource | null;
export interface UseMediaAudioOptions {
    /** Audio source to manage (any supported type) */
    source?: AudioSourceInput;
    /** Callback function triggered on error */
    onError?: (error: Error) => void;
}
export interface UseMediaAudioReturn {
    /** Standardized AudioSource for AudioWave component */
    source: AudioSource | null;
    /** Any error that occurred */
    error: Error | null;
}
/**
 * Universal audio source management hook
 *
 * Perfect for integrating with external recording software, media players,
 * or any application that already has audio sources and just needs visualization.
 */
export declare function useMediaAudio(options?: UseMediaAudioOptions): UseMediaAudioReturn;
/**
 * Hook specifically for MediaStream sources
 */
export declare function useMediaStreamSource(stream: MediaStream | null, options?: Omit<UseMediaAudioOptions, 'source'>): UseMediaAudioReturn;
/**
 * Hook specifically for HTMLMediaElement sources (audio/video files)
 */
export declare function useMediaElementSource(element: HTMLMediaElement | null, options?: Omit<UseMediaAudioOptions, 'source'>): UseMediaAudioReturn;
/**
 * Hook specifically for AudioNode sources
 */
export declare function useAudioNodeSource(node: AudioNode | null, options?: Omit<UseMediaAudioOptions, 'source'>): UseMediaAudioReturn;
export { useMediaAudio as useAudioSource };
//# sourceMappingURL=useMediaAudio.d.ts.map