export type Path<T, Prefix extends string = ''> = T extends object ? {
    [K in keyof T & string]: T[K] extends object ? Path<T[K], `${Prefix}${K}.`> : `${Prefix}${K}`;
}[keyof T & string] : never;
export type Translation = string | {
    [key: string]: Translation;
};
export declare const createTranslations: <T extends Record<string, () => Promise<Translation>>, TParam extends Path<Awaited<ReturnType<T[keyof T]>>>>(params: {
    messages: T;
    initLang: keyof T;
    cookieName?: string;
    initLangFromAcceptLanguage?: boolean;
}) => () => {
    preloadTranslation: (callback?: () => keyof T) => Promise<void>;
    syncTranslation: <T_1 extends {
        translations?: Translation;
        lang: string;
    }>(data: T_1, fromEvent?: boolean) => Promise<void>;
    switchLocale: (newLocale: keyof T) => Promise<void>;
    applyHtmlLocaleAttr: (html: string) => string;
    subscribeLocaleChangeEvent: (listener: (data: keyof T) => void) => (() => void);
    t: import("svelte/store").Readable<(translation?: TParam | {
        key: TParam | string;
        vars?: Record<string, unknown>;
    } | string, vars?: Record<string, unknown>) => string>;
    locale: import("svelte/store").Writable<keyof T | undefined>;
    locales: Record<keyof T, keyof T>;
};
