/**
 * Translation helper for the ai-agent package.
 *
 * Provides a lightweight `t()` function that resolves message keys
 * to translated strings using the TranslationRegistry from
 * @contractspec/lib.contracts-spec.
 *
 * @module i18n/messages
 */
import type { AgentMessageKey } from './keys';
/**
 * Interface for the agent i18n helper.
 */
export interface AgentI18n {
    /**
     * Translate a message key, with optional placeholder interpolation.
     *
     * @param key    - A key from I18N_KEYS
     * @param params - Optional placeholder values to interpolate
     * @returns The translated string (falls back to English, then to the key itself)
     *
     * @example
     * ```ts
     * const i18n = createAgentI18n("fr");
     * i18n.t("error.missingToolHandler", { name: "search" });
     * // => "Gestionnaire manquant pour l'outil : search"
     * ```
     */
    t(key: AgentMessageKey | string, params?: Record<string, string | number>): string;
    /** The effective locale being used */
    readonly locale: string;
}
/**
 * Create an AgentI18n instance for a given locale.
 *
 * The locale is resolved through the standard priority chain:
 *   runtimeLocale > specLocale > DEFAULT_LOCALE ("en")
 *
 * @param specLocale    - Locale from the agent spec (optional)
 * @param runtimeLocale - Runtime locale override (optional)
 * @returns An AgentI18n instance bound to the resolved locale
 *
 * @example
 * ```ts
 * // Use spec locale
 * const i18n = createAgentI18n("fr");
 *
 * // Use runtime override
 * const i18n = createAgentI18n("fr", "es"); // resolves to "es"
 *
 * // Use default
 * const i18n = createAgentI18n(); // resolves to "en"
 * ```
 */
export declare function createAgentI18n(specLocale?: string, runtimeLocale?: string): AgentI18n;
/**
 * Convenience: create a default (English) i18n instance.
 * Useful in contexts where no locale information is available.
 */
export declare function getDefaultI18n(): AgentI18n;
/**
 * Reset the shared registry (useful for testing).
 * @internal
 */
export declare function resetI18nRegistry(): void;
