import { type Locale } from './types.js';
export type { Locale } from './types.js';
export { isLocale, SUPPORTED_LOCALES } from './types.js';
export declare function getDefaultLocale(): Locale;
export declare function setDefaultLocale(loc: Locale): void;
/** Resolve the locale for a given bot's config (used by per-bot code paths). */
export declare function botLocale(botCfg: {
    lang?: string;
} | undefined | null): Locale;
type BotConfigLike = {
    lang?: string;
};
type BotLookup = (larkAppId: string) => {
    config: BotConfigLike;
} | undefined;
/**
 * Register a bot-config lookup so `localeForBot()` can resolve a per-bot
 * locale without creating an import cycle between `i18n` and `bot-registry`.
 * Called once by `bot-registry.ts` at module load.
 */
export declare function setBotLookup(lookup: BotLookup): void;
/**
 * Resolve the locale for a bot by its larkAppId. Falls back to the process
 * default when the bot is not registered (e.g. CLI tools without a daemon).
 */
export declare function localeForBot(larkAppId: string | undefined | null): Locale;
/**
 * Translate a key. Falls back to the Chinese dictionary, then to the key
 * itself if neither dictionary has the entry (so missing keys are loud
 * rather than silently producing empty strings).
 */
export declare function t(key: string, params?: Record<string, string | number>, locale?: Locale): string;
//# sourceMappingURL=index.d.ts.map