import { DeclensionInput, DeclensionOutput } from './contracts'; import { GrammaticalCase } from './language'; import { WordInflector } from './word-declension'; export type FieldName = keyof Omit; export type AfterInflectHook = (grammaticalCase: GrammaticalCase, input: T) => Promise>; 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(grammaticalCase: GrammaticalCase, input: T): Promise>;