import { LangObject } from '../../../../../../types/src/table';
import { default as Module } from '../../core/Module';
import { default as Tabulator } from '../../core/Tabulator';

type LangBindings = Record<string, Array<(text: string, lang: LangObject) => void>>;
export default class Localize extends Module {
    static readonly moduleName = "localize";
    static readonly langs: Record<string, LangObject>;
    locale: string;
    lang: LangObject | false;
    bindings: LangBindings;
    langList: Record<string, LangObject>;
    constructor(table: Tabulator);
    initialize(): void;
    setHeaderFilterPlaceholder(placeholder: string): void;
    installLang(locale: string, lang: LangObject): void;
    _setLangProp(lang: LangObject, values: LangObject): void;
    setLocale(desiredLocale: string | boolean | undefined): void;
    getLocale(): string;
    getLang(locale?: string): LangObject | false;
    getText(path: string, value?: string): string;
    _getLangElement(path: string[]): string | false;
    bind(path: string, callback: (text: string, lang: LangObject) => void): void;
    _executeBindings(): void;
}
export {};
