import { GrammaticalCase, GrammaticalGender, WordClass } from '../language';
import { ApplicationType, DeclensionRule } from './declension-types';
export type CustomRuleFilter = (declensionRule: DeclensionRule, index: number, declensionRules: DeclensionRule[]) => boolean;
export type DeclensionParams = {
    grammaticalCase: GrammaticalCase;
    gender: GrammaticalGender;
    wordClass?: WordClass;
    applicationType?: ApplicationType;
    customRuleFilter?: CustomRuleFilter;
};
export declare class WordInflector {
    private readonly declensionRules;
    constructor(declensionRules: DeclensionRule[]);
    inflect(word: string, params: DeclensionParams): Promise<string>;
    /**
     * Finds matching declension rules for the given word.
     */
    private findMatchingRules;
}
