import React from 'react';
import type { AudioPlayerOptions } from './AudioPlayer';
export type WithAudioPlaybackProps = {
    children?: React.ReactNode;
    allowConcurrentPlayback?: boolean;
};
export declare const WithAudioPlayback: ({ allowConcurrentPlayback, children, }: WithAudioPlaybackProps) => React.JSX.Element;
export type UseAudioPlayerProps = {
    /**
     * Identifier of the entity that requested the audio playback, e.g. message ID.
     * Asset to specific audio player is a many-to-many relationship
     * - one URL can be associated with multiple UI elements,
     * - one UI element can display multiple audio sources.
     * Therefore, the AudioPlayer ID is a combination of request:src.
     *
     * The requester string can take into consideration whether there are multiple instances of
     * the same URL requested by the same requester (message has multiple attachments with the same asset URL).
     * In reality the fact that one message has multiple attachments with the same asset URL
     * could be considered a bad practice or a bug.
     */
    requester?: string;
} & Partial<Omit<AudioPlayerOptions, 'id' | 'pool'>>;
export declare const useAudioPlayer: ({ durationSeconds, fileSize, mimeType, playbackRates, plugins, requester, src, title, waveformData, }: UseAudioPlayerProps) => import("./AudioPlayer").AudioPlayer | undefined;
export declare const useActiveAudioPlayer: () => import("./AudioPlayer").AudioPlayer | null | undefined;
