//#region src/wc/types.d.ts interface LocaleChunk { locale: string; text: string; } interface ChunkBreakdown extends LocaleChunk { words: number; nonWords?: NonWordCollection; } interface ChunkWithSegments extends ChunkBreakdown { segments: string[]; } interface CollectorBreakdown { locale: string; words: number; segments: string[]; } interface CharBreakdown extends LocaleChunk { chars: number; nonWords?: NonWordCollection; } interface CharCollectorBreakdown { locale: string; chars: number; nonWords?: NonWordCollection; } type WordCounterMode = "chunk" | "segments" | "collector" | "char" | "char-collector"; interface NonWordCounts { emoji: number; symbols: number; punctuation: number; whitespace?: number; } interface WhitespaceCounts { spaces: number; tabs: number; newlines: number; other: number; } interface NonWordCollection { emoji: string[]; symbols: string[]; punctuation: string[]; whitespace?: WhitespaceCounts; counts: NonWordCounts; } interface LatinHintRule { tag: string; pattern: string | RegExp; priority?: number; } interface WordCounterOptions { mode?: WordCounterMode; latinLanguageHint?: string; latinTagHint?: string; latinLocaleHint?: string; latinHintRules?: LatinHintRule[]; useDefaultLatinHints?: boolean; hanLanguageHint?: string; hanTagHint?: string; nonWords?: boolean; includeWhitespace?: boolean; } interface WordCounterCounts { words: number; nonWords: number; total: number; } type WordCounterBreakdown = { mode: "chunk"; items: ChunkBreakdown[]; } | { mode: "segments"; items: ChunkWithSegments[]; } | { mode: "char"; items: CharBreakdown[]; } | { mode: "char-collector"; items: CharCollectorBreakdown[]; } | { mode: "collector"; items: CollectorBreakdown[]; nonWords?: NonWordCollection; }; interface WordCounterResult { total: number; counts?: WordCounterCounts; breakdown: WordCounterBreakdown; } //#endregion //#region src/wc/locale-detect.d.ts interface LocaleDetectOptions { latinLanguageHint?: string; latinTagHint?: string; latinLocaleHint?: string; latinHintRules?: LatinHintRule[]; useDefaultLatinHints?: boolean; hanLanguageHint?: string; hanTagHint?: string; } //#endregion //#region src/wc/segment.d.ts declare function segmentTextByLocale(text: string, options?: LocaleDetectOptions): LocaleChunk[]; //#endregion //#region src/wc/segmenter.d.ts declare function countWordsForLocale(text: string, locale: string): number; declare function countCharsForLocale(text: string, locale: string): number; //#endregion //#region src/wc/latin-hints.d.ts declare const DEFAULT_LATIN_HINT_RULES: ReadonlyArray>; //#endregion //#region src/wc/wc.d.ts declare function wordCounter(text: string, options?: WordCounterOptions): WordCounterResult; //#endregion //#region src/utils/append-all.d.ts declare function appendAll(target: T[], source: readonly T[]): void; //#endregion //#region src/utils/show-singular-or-plural-word.d.ts declare function showSingularOrPluralWord(count: number, word: string): string; //#endregion //#region src/markdown/types.d.ts type FrontmatterType = "yaml" | "toml" | "json"; interface ParsedMarkdown { frontmatter: string | null; content: string; data: Record | null; frontmatterType: FrontmatterType | null; } type SectionMode = "all" | "split" | "frontmatter" | "content" | "per-key" | "split-per-key"; interface SectionedResult { section: SectionMode; total: number; frontmatterType: FrontmatterType | null; items: Array<{ name: string; source: "frontmatter" | "content"; result: WordCounterResult; }>; } //#endregion //#region src/markdown/parse-markdown.d.ts declare function parseMarkdown(input: string): ParsedMarkdown; //#endregion //#region src/markdown/section-count.d.ts declare function countSections(input: string, section: SectionMode, options?: WordCounterOptions): SectionedResult; //#endregion export { NonWordCollection as _, SectionMode as a, WordCounterOptions as b, appendAll as c, countCharsForLocale as d, countWordsForLocale as f, LocaleChunk as g, LatinHintRule as h, ParsedMarkdown as i, wordCounter as l, LocaleDetectOptions as m, parseMarkdown as n, SectionedResult as o, segmentTextByLocale as p, FrontmatterType as r, showSingularOrPluralWord as s, countSections as t, DEFAULT_LATIN_HINT_RULES as u, WordCounterBreakdown as v, WordCounterResult as x, WordCounterMode as y };