import { GrammaticalCase, GrammaticalGender, WordClass } from '../language'; export type DeclensionRule = { description: string; examples: string[]; wordClass: WordClass; gender: GrammaticalGender[]; priority: number; applicationType: ApplicationType[]; pattern: DeclensionPattern; grammaticalCases: GrammaticalCases; }; export type ApplicationType = 'givenName' | 'patronymicName' | 'familyName'; export type DeclensionPattern = { find: string; modify: string; }; export type GrammaticalCases = { [GrammaticalCase.NOMINATIVE]: InflectionCommands[]; [GrammaticalCase.GENITIVE]: InflectionCommands[]; [GrammaticalCase.DATIVE]: InflectionCommands[]; [GrammaticalCase.ACCUSATIVE]: InflectionCommands[]; [GrammaticalCase.ABLATIVE]: InflectionCommands[]; [GrammaticalCase.LOCATIVE]: InflectionCommands[]; [GrammaticalCase.VOCATIVE]: InflectionCommands[]; }; export type InflectionCommands = { [groupIndex: string]: InflectionCommand; }; export type InflectionCommand = { action: InflectionCommandAction; value: string; }; export declare enum InflectionCommandAction { REPLACE = "replace", APPEND = "append" }