import { Task } from '@lit/task';
import { LitElement, PropertyValueMap } from 'lit';
import { EFAudio } from './EFAudio.js';
import { EFVideo } from './EFVideo.js';
declare const EFCaptionsActiveWord_base: (new (...args: any[]) => import('./EFTemporal.js').TemporalMixinInterface) & typeof LitElement;
export declare class EFCaptionsActiveWord extends EFCaptionsActiveWord_base {
    static styles: import('lit').CSSResult[];
    render(): import('lit-html').TemplateResult<1> | undefined;
    wordStartMs: number;
    wordEndMs: number;
    wordText: string;
    hidden: boolean;
    get startTimeMs(): number;
    get durationMs(): number;
}
declare const EFCaptionsSegment_base: (new (...args: any[]) => import('./EFTemporal.js').TemporalMixinInterface) & typeof LitElement;
export declare class EFCaptionsSegment extends EFCaptionsSegment_base {
    static styles: import('lit').CSSResult[];
    render(): import('lit-html').TemplateResult<1> | undefined;
    segmentStartMs: number;
    segmentEndMs: number;
    segmentText: string;
    hidden: boolean;
    get startTimeMs(): number;
    get durationMs(): number;
}
export declare class EFCaptionsBeforeActiveWord extends EFCaptionsSegment {
    static styles: import('lit').CSSResult[];
    render(): import('lit-html').TemplateResult<1> | undefined;
    hidden: boolean;
    segmentText: string;
    segmentStartMs: number;
    segmentEndMs: number;
    get startTimeMs(): number;
    get durationMs(): number;
}
export declare class EFCaptionsAfterActiveWord extends EFCaptionsSegment {
    static styles: import('lit').CSSResult[];
    render(): import('lit-html').TemplateResult<1> | undefined;
    hidden: boolean;
    segmentText: string;
    segmentStartMs: number;
    segmentEndMs: number;
    get startTimeMs(): number;
    get durationMs(): number;
}
declare const EFCaptions_base: (new (...args: any[]) => import('./EFSourceMixin.js').EFSourceMixinInterface) & (new (...args: any[]) => import('./EFTemporal.js').TemporalMixinInterface) & (new (...args: any[]) => import('./FetchMixin.js').FetchMixinInterface) & typeof LitElement;
export declare class EFCaptions extends EFCaptions_base {
    static styles: import('lit').CSSResult[];
    displayMode: "word" | "segment" | "context";
    contextWords: number;
    targetSelector: string;
    set target(value: string);
    wordStyle: string;
    activeWordContainers: HTMLCollectionOf<EFCaptionsActiveWord>;
    segmentContainers: HTMLCollectionOf<EFCaptionsSegment>;
    beforeActiveWordContainers: HTMLCollectionOf<EFCaptionsBeforeActiveWord>;
    afterActiveWordContainers: HTMLCollectionOf<EFCaptionsAfterActiveWord>;
    render(): import('lit-html').TemplateResult<1>;
    transcriptionsPath(): string | null;
    captionsPath(): string;
    protected md5SumLoader: Task<readonly [string, typeof fetch], string | undefined>;
    private transcriptionDataTask;
    private transcriptionFragmentPath;
    private fragmentIndexTask;
    private transcriptionFragmentDataTask;
    frameTask: Task<import('@lit/task').TaskStatus[], void>;
    connectedCallback(): void;
    protected updated(_changedProperties: PropertyValueMap<any> | Map<PropertyKey, unknown>): void;
    updateTextContainers(): void;
    get targetElement(): EFAudio | EFVideo;
}
declare global {
    interface HTMLElementTagNameMap {
        "ef-captions": EFCaptions;
        "ef-captions-active-word": EFCaptionsActiveWord;
        "ef-captions-segment": EFCaptionsSegment;
        "ef-captions-before-active-word": EFCaptionsBeforeActiveWord;
        "ef-captions-after-active-word": EFCaptionsAfterActiveWord;
    }
}
export {};
