UNPKG

@curvenote/schema

Version:

Schema and markdown parser for @curvenote/editor

54 lines (53 loc) 1.84 kB
import type { ReferenceKind } from '../nodes/types'; export declare type CounterMeta = Record<string, string | number | boolean | null>; export declare type Reference<K = ReferenceKind, T = CounterMeta> = { id: string | null; kind: K; label: string | null; numbered: boolean; number: number | null; title: string; meta: T; }; export declare type Counter<R extends Reference> = { kind: R['kind']; total: number; all: R[]; }; export declare type SectionReference = Reference<ReferenceKind.sec, { level: number; section: string | null; }>; export declare type FigureReference = Reference<ReferenceKind.fig, { src: string; alt: string; }>; export declare type EquationReference = Reference<ReferenceKind.eq, { math: string; }>; export declare type CodeReference = Reference<ReferenceKind.code, { code: string; language: string | null; }>; export declare type TableReference = Reference<ReferenceKind.table>; export declare type LinkReference = Reference<ReferenceKind.link, { url: string; }>; export declare type CiteReference = Reference<ReferenceKind.cite, { key: string; }>; export declare type AnyReference = SectionReference | FigureReference | EquationReference | CodeReference | TableReference | CiteReference | LinkReference; export declare type StateCounter = { [ReferenceKind.sec]: Counter<SectionReference>; [ReferenceKind.fig]: Counter<FigureReference>; [ReferenceKind.eq]: Counter<EquationReference>; [ReferenceKind.code]: Counter<CodeReference>; [ReferenceKind.table]: Counter<TableReference>; [ReferenceKind.link]: Counter<LinkReference>; [ReferenceKind.cite]: Counter<CiteReference>; }; export declare type WordCounter = { words: number; characters_excluding_spaces: number; characters_including_spaces: number; };