UNPKG

shevchenko

Version:

JavaScript library for declension of Ukrainian anthroponyms

17 lines (16 loc) 903 B
import { DeclensionInput, DeclensionOutput } from './contracts'; import { GrammaticalCase } from './language'; import { WordInflector } from './word-declension'; export type FieldName = keyof Omit<DeclensionInput, 'gender'>; export type AfterInflectHook = <T extends DeclensionInput>(grammaticalCase: GrammaticalCase, input: T) => Promise<DeclensionOutput<T>>; export type ShevchenkoExtension = { fieldNames: FieldName[]; afterInflect?: AfterInflectHook; }; export type ExtensionFactory = (context: ExtensionContext) => ShevchenkoExtension; export type ExtensionContext = { wordInflector: WordInflector; }; export declare function registerExtension(extensionFactory: ExtensionFactory): void; export declare function getCustomFieldNames(): FieldName[]; export declare function afterInflect<T extends DeclensionInput>(grammaticalCase: GrammaticalCase, input: T): Promise<DeclensionOutput<T>>;