shevchenko
Version:
JavaScript library for declension of Ukrainian anthroponyms
17 lines (16 loc) • 903 B
TypeScript
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>>;