/**
 * Context for providing live subtitles to video/audio cards.
 *
 * This allows cards to reactively access subtitle data without
 * needing to re-render the entire grid when subtitles change.
 */
import React from 'react';
import { type LiveSubtitle } from 'mediasfu-shared';
export interface LiveSubtitleContextValue {
    /** Map of speakerId/speakerName to LiveSubtitle */
    liveSubtitles: Map<string, LiveSubtitle>;
    /** Whether to show subtitles on cards */
    showSubtitlesOnCards: boolean;
    /** Helper to get subtitle for a speaker by id or name */
    getSubtitleForSpeaker: (speakerId: string, speakerName: string) => LiveSubtitle | null;
}
declare const LiveSubtitleContext: React.Context<LiveSubtitleContextValue>;
export interface LiveSubtitleProviderProps {
    liveSubtitles: Map<string, LiveSubtitle>;
    showSubtitlesOnCards: boolean;
    children: React.ReactNode;
}
export declare const LiveSubtitleProvider: React.FC<LiveSubtitleProviderProps>;
/**
 * Hook to access live subtitle context.
 * Returns null if used outside of LiveSubtitleProvider.
 */
export declare const useLiveSubtitles: () => LiveSubtitleContextValue | null;
/**
 * Hook to get subtitle for a specific speaker.
 * Returns null if no subtitle exists or context is unavailable.
 */
export declare const useSpeakerSubtitle: (speakerId: string, speakerName: string) => LiveSubtitle | null;
/**
 * Hook to check if subtitles should be shown.
 */
export declare const useShowSubtitles: () => boolean;
export default LiveSubtitleContext;
