import { Context as TelegrafContext, MiddlewareFn } from 'telegraf'; import { ExtraReplyMessage } from 'telegraf/typings/telegram-types'; import { Message } from 'typegram'; import { Config, LanguageCode, Repository, TemplateData } from './types'; import { I18nContext } from './context'; interface TelegrafContextWithI18n extends TelegrafContext { i18n: I18nContext; } export declare class I18n { repository: Repository; readonly config: Config; constructor(config?: Partial); loadLocales(directory: string): void; loadLocale(languageCode: LanguageCode, i18nData: Readonly>): void; resetLocale(languageCode?: LanguageCode): void; availableLocales(): LanguageCode[]; resourceKeys(languageCode: LanguageCode): string[]; missingKeys(languageOfInterest: LanguageCode, referenceLanguage?: string): string[]; overspecifiedKeys(languageOfInterest: LanguageCode, referenceLanguage?: string): string[]; translationProgress(languageOfInterest: LanguageCode, referenceLanguage?: string): number; createContext(languageCode: LanguageCode, templateData: Readonly): I18nContext; middleware(): MiddlewareFn; t(languageCode: LanguageCode, resourceKey: string, templateData?: Readonly): string; } export declare function match(resourceKey: string, templateData?: Readonly): (text: string, ctx: TelegrafContextWithI18n) => RegExpExecArray | null; export declare function reply(resourceKey: string, extra?: ExtraReplyMessage): (ctx: TelegrafContextWithI18n) => Promise; export {};