export interface BiblioData { [namespace: string]: BiblioEntry[]; } export interface BiblioEntryBase { type: string; location: string; namespace?: string; id?: string; aoid?: string | null; refId?: string; clauseId?: string; name?: string; title?: string; number?: string | number; caption?: string; term?: string; referencingIds: string[]; } export interface AlgorithmBiblioEntry extends BiblioEntryBase { type: 'op'; aoid: string; refId?: string; } export interface ProductionBiblioEntry extends BiblioEntryBase { type: 'production'; id?: string; name: string; } export interface ClauseBiblioEntry extends BiblioEntryBase { type: 'clause'; id: string; aoid: string | null; title: string; titleHTML: string; number: string | number; } export interface TermBiblioEntry extends BiblioEntryBase { type: 'term'; term: string; refId: string; variants?: string[]; id?: string; } export interface FigureBiblioEntry extends BiblioEntryBase { type: 'table' | 'figure' | 'example' | 'note'; id: string; node: HTMLElement; number: string | number; clauseId?: string; caption?: string; } export interface StepBiblioEntry extends BiblioEntryBase { type: 'step'; id: string; stepNumbers: number[]; } export declare type BiblioEntry = AlgorithmBiblioEntry | ProductionBiblioEntry | ClauseBiblioEntry | TermBiblioEntry | FigureBiblioEntry | StepBiblioEntry; declare type Unkey = T extends any ? Omit : never; export declare type PartialBiblioEntry = Unkey; export declare function getKeys(entry: TermBiblioEntry): string[]; export {};