export type { Speakers } from "./speakers";
export type Tab = "t" | "s";
export declare enum TalkSourceFlag {
    GeneralConference = "g",
    JournalOfDiscourses = "j",
    TeachingsOfJosephSmith = "t"
}
export declare enum ScriptureSourceFlag {
    OldTestament = "o",
    NewTestament = "n",
    JSTFootnotes = "f",
    BookOfMormon = "b",
    DoctrineAndCovenants = "d",
    PearlOfGreatPrice = "p",
    JST = "j"
}
export type SourceFlag = TalkSourceFlag | ScriptureSourceFlag;
export type SortOrder = "r" | "n";
/**
 * Citation query for Talks tab ('t').
 * Includes speakerId, startYear, endYear.
 */
export interface TalksCitationIndexQuery {
    tab: "t";
    speakerId?: string;
    startYear?: number;
    endYear?: number;
    sources: TalkSourceFlag[];
    sort?: SortOrder;
    pageSize?: number;
    offset?: number;
    query: string;
}
/**
 * Citation query for Scriptures tab ('s').
 * Does NOT include speakerId, startYear, endYear.
 */
export interface ScripturesCitationIndexQuery {
    tab: "s";
    sources: ScriptureSourceFlag[];
    sort?: SortOrder;
    pageSize?: number;
    offset?: number;
    query: string;
}
/**
 * Union type for citation queries.
 */
export type CitationIndexQuery = TalksCitationIndexQuery | ScripturesCitationIndexQuery;
export declare const resultTitleClass = "resultTitle";
export declare const resultContextClass = "resultContext";
export interface CitationIndexResult {
    [resultTitleClass]: string;
    [resultContextClass]: string;
}
