import { Tracer } from '../stats';
/**
 * Tracks audio elements that the browser's autoplay policy has blocked.
 */
export declare class BlockedAudioTracker {
    private logger;
    private tracer;
    private blockedElementsSubject;
    /**
     * Whether the browser's autoplay policy is blocking audio playback.
     * Will be `true` when at least one audio element is currently blocked.
     * Use {@link resumeAudio} within a user gesture to unblock.
     */
    autoplayBlocked$: import("rxjs").Observable<boolean>;
    constructor(tracer: Tracer);
    /**
     * Registers an audio element as blocked by the browser's autoplay policy.
     */
    markBlocked: (audioElement: HTMLAudioElement, blocked: boolean) => void;
    /**
     * Returns whether the given audio element is currently flagged as blocked
     * by the browser's autoplay policy.
     */
    isBlocked: (audioElement: HTMLAudioElement) => boolean;
    /**
     * Plays all audio elements blocked by the browser's autoplay policy.
     * Must be called from within a user gesture (e.g., click handler).
     */
    resumeAudio: () => Promise<void>;
}
