import { Fluent, LocaleId, TranslationContext } from '@moebius/fluent';
import { Middleware } from 'grammy';
import { LocaleNegotiator } from './locale-negotiator';
export interface GrammyFluentOptions {
    fluent: Fluent;
    defaultLocale?: LocaleId;
    localeNegotiator?: LocaleNegotiator;
}
export declare type TranslateFunction = ((messageId: string, context?: TranslationContext) => string);
export interface FluentContextFlavor {
    fluent: {
        instance: Fluent;
        renegotiateLocale: () => Promise<void>;
        useLocale: (locale: LocaleId) => void;
    };
    translate: TranslateFunction;
    t: TranslateFunction;
}
export declare function useFluent(options: GrammyFluentOptions): Middleware;
