/**
 * i18n with custom text override support
 *
 * Loads Auth0-format locale JSON files at build time and provides
 * screen-scoped translation functions.
 *
 * Usage:
 * ```typescript
 * import { createTranslation } from '../i18n';
 *
 * const { m } = createTranslation('login-id', 'login-id', 'nb', customTextFromDb);
 * m.title()  // "Velkommen" (or custom override if set)
 * m.description({ companyName: 'Acme', clientName: 'App' })
 * ```
 */
import type { CustomText } from "@authhero/adapter-interfaces";
import type { ScreenMap } from "../generated/locale-types";
export type { ScreenMap } from "../generated/locale-types";
export type { Locale } from "../generated/locale-types";
export type TranslationMap = Record<string, (variables?: Record<string, unknown>) => string>;
export declare const locales: readonly ["cs", "da", "en", "fi", "it", "nb", "pl", "sv"];
export declare const baseLocale: "en";
/**
 * Native display names for each supported locale. Used by the language picker
 * in the universal-login chrome. Keys must stay in sync with `locales` above —
 * adding a locale here without a JSON file (or vice versa) will leave the
 * picker showing a raw code instead of a name.
 */
export declare const LOCALE_DISPLAY_NAMES: Record<(typeof locales)[number], string>;
/**
 * Resolve a locale code to its native display name, falling back to the
 * raw code when the locale is not recognised.
 */
export declare function getLocaleDisplayName(lang: string): string;
/**
 * Create a screen-scoped translation object.
 *
 * Returns a typed object matching the generated ScreenMap when prompt/screen
 * are known string literals, or a generic TranslationMap for dynamic keys.
 *
 * @param prompt - The prompt ID (e.g., 'login-id', 'signup')
 * @param screen - The screen ID (e.g., 'login-id', 'signup')
 * @param locale - The locale code (e.g., 'nb', 'en', 'sv')
 * @param customText - Optional custom text overrides from database
 */
export declare function createTranslation<P extends string, S extends string>(prompt: P, screen: S, locale: string, customText?: CustomText): {
    m: `${P}.${S}` extends keyof ScreenMap ? ScreenMap[`${P}.${S}`] : TranslationMap;
    locale: (typeof locales)[number];
};
/**
 * Check if a locale is supported.
 */
export declare function isLocaleSupported(locale: string): boolean;
/**
 * Get locale defaults for a specific prompt and language.
 * Used by the management API prompts endpoint.
 *
 * Returns the nested screen → key → value structure for the given prompt,
 * falling back to English if the requested language isn't available.
 */
export declare function getLocaleDefaults(prompt: string, language: string): Record<string, Record<string, string>>;
export interface LocaleDefaultsEntry {
    prompt: string;
    language: string;
    custom_text: Record<string, Record<string, string>>;
}
/**
 * Enumerate every bundled locale default as a flat list of
 * `{ prompt, language, custom_text }` entries, optionally filtered by
 * language and/or prompt. Powers the `/api/v2/prompts/custom-text/defaults`
 * endpoint so the admin UI can render placeholders and discover which
 * forms exist without round-tripping per (prompt, language) pair.
 */
export declare function getAllLocaleDefaults(filter?: {
    language?: string;
    prompt?: string;
}): LocaleDefaultsEntry[];
