import { AuthPlugin } from './auth-plugin';
import { Localization } from './localization';
export type AuthLocaleDirection = "ltr" | "rtl";
/** A complete set of translated Better Auth UI messages. */
export interface AuthLocale {
    /** Canonical BCP 47 language tag, such as `de-DE` or `zh-CN`. */
    languageTag: string;
    /** Text direction for this locale. @default "ltr" */
    direction?: AuthLocaleDirection;
    /** Core authentication and settings messages. */
    localization: Localization;
    /** Optional messages keyed by auth plugin ID. */
    plugins?: Record<string, Record<string, unknown>>;
}
export declare const defaultAuthLocale: AuthLocale;
/** Defines a locale while preserving its narrow language-tag type. */
export declare function defineAuthLocale<const TLocale extends AuthLocale>(locale: TLocale): TLocale;
export type MatchAuthLocaleOptions<TLocale extends AuthLocale> = {
    /** Browser languages or an `Accept-Language` header value. */
    requested: string | readonly string[] | null | undefined;
    /** Locales that the application has imported. */
    supported: readonly TLocale[];
    /** Locale returned when no requested language matches. */
    fallback: TLocale;
};
/** Matches exact language tags first, then matches their base languages. */
export declare function matchAuthLocale<TLocale extends AuthLocale>({ requested, supported, fallback }: MatchAuthLocaleOptions<TLocale>): TLocale;
/** Applies locale messages to registered plugins without mutating them. */
export declare function localizeAuthPlugins(plugins: AuthPlugin[], locale: AuthLocale): AuthPlugin[];
