import type { FlattenKeys, GetByString, Split, UnionToIntersection } from 'utilium';
/**
 * Add translations to a locale.
 * Note that translations are rendered as HTML, only replacements are escaped.
 */
export declare function extendLocale(locale: string, data: object): void;
declare let currentLoaded: {
    readonly AccessControlDialog: {
        readonly named_title: "Permissions for <strong>{name}</strong>";
        readonly owner: "Owner";
        readonly title: "Permissions";
        readonly remove: "Remove";
        readonly toast_removed: "Removed access";
        readonly public_target: "Everyone";
        readonly add_public: "Add Public Access";
        readonly placeholder: "Add users and roles";
    };
    readonly AppMenu: {
        readonly failed: "Couldn't load apps.";
        readonly none: "No apps available.";
    };
    readonly Discovery: {
        readonly no_results: "No results";
    };
    readonly Login: {
        readonly email: "Email";
        readonly register: "Register instead";
    };
    readonly Logout: {
        readonly back: "Take me back";
        readonly question: "Are you sure you want to log out?";
    };
    readonly Register: {
        readonly email: "Email";
        readonly login: "Login instead";
        readonly name: "Display Name";
    };
    readonly SessionList: {
        readonly created: "Created {date}";
        readonly current: "Current";
        readonly elevated: "Elevated";
        readonly expires: "Expires {date}";
        readonly logout_all_question: "Are you sure you want to log out all sessions?";
        readonly logout_all_submit: "Logout All Sessions";
        readonly logout_all_trigger: "Logout All";
        readonly logout_single: "Are you sure you want to log out this session?";
    };
    readonly Upload: {
        readonly upload: "Upload";
    };
    readonly UserCard: {
        readonly you: "(You)";
    };
    readonly UserMenu: {
        readonly account: "Your Account";
        readonly admin: "Administration";
    };
    readonly Version: {
        readonly error: "Latest unknown";
        readonly latest: "Latest";
        readonly upgrade: "<span class=\"version\">{latest}</span> available";
    };
    readonly ZodInput: {
        readonly invalid_type: "Invalid input type: {type}";
    };
    readonly generic: {
        readonly action_irreversible: "This action can't be undone.";
        readonly cancel: "Cancel";
        readonly change: "Change";
        readonly create: "Create";
        readonly delete: "Delete";
        readonly done: "Done";
        readonly email: "Email";
        readonly loading: "Loading...";
        readonly login: "Login";
        readonly logout: "Logout";
        readonly no: "No";
        readonly none: "None";
        readonly ok: "Okay";
        readonly preferences: "Preferences";
        readonly register: "Register";
        readonly rename: "Rename";
        readonly sessions: "Sessions";
        readonly share: "Share";
        readonly success: "Success";
        readonly unknown: "Unknown";
        readonly unnamed: "Unnamed";
        readonly username: "Name";
        readonly yes: "Yes";
    };
    readonly page: {
        readonly account: {
            readonly delete_account: "Delete Account";
            readonly delete_account_confirm: "Are you sure you want to delete your account?";
            readonly edit_email: "Email Address";
            readonly edit_name: "What do you want to be called?";
            readonly email_verified_on: "Email verified on {date}";
            readonly greeting: "Welcome, {name}";
            readonly passkeys: {
                readonly backed_up: "This passkey is backed up";
                readonly create: "Create";
                readonly created: "Created {date}";
                readonly delete: "Delete";
                readonly delete_confirm: "Are you sure you want to delete this passkey?";
                readonly edit_name: "Passkey Name";
                readonly min_one: "You must have at least one passkey";
                readonly multi_device: "Multiple devices";
                readonly name_type_error: "Passkey name must be a string";
                readonly not_backed_up: "This passkey is not backed up";
                readonly rename: "Rename";
                readonly single_device: "Single device";
                readonly title: "Passkeys";
            };
            readonly personal_info: "Personal Information";
            readonly pfp: {
                readonly update: "Upload";
                readonly remove: "Remove";
                readonly toast_removed: "Profile picture removed";
                readonly toast_updated: "Profile picture updated";
            };
            readonly preferences: "Preferences";
            readonly sessions: "Sessions";
            readonly title: "Your Account";
            readonly user_id: "User ID";
            readonly user_id_hint: "This is your UUID. It can't be changed.";
            readonly verification_sent: "Verification email sent";
            readonly verify: "Verify";
        };
        readonly admin: {
            readonly heading: "Administration";
            readonly tab: {
                readonly dashboard: "Dashboard";
                readonly users: "Users";
                readonly config: "Configuration";
                readonly plugins: "Plugins";
                readonly audit: "Audit Log";
            };
            readonly toast: {
                readonly suspended: "User suspended";
                readonly unsuspended: "User un-suspended";
                readonly user_updated: "User updated";
            };
            readonly audit: {
                readonly any: "Any";
                readonly apply: "Apply";
                readonly error_stack: "Error Stack";
                readonly event_heading: "Audit Event";
                readonly event_title: "Admin — Audit Log Event #{id}";
                readonly extra_data: "Extra Data";
                readonly filter: {
                    readonly event: "Event Name:";
                    readonly severity: "Minimum Severity:";
                    readonly since: "Since:";
                    readonly source: "Source:";
                    readonly tags: "Tags:";
                    readonly until: "Until:";
                    readonly user: "User UUID:";
                };
                readonly filters: "Filters";
                readonly heading: "Audit Log";
                readonly invalid_filter: "Invalid Filter:";
                readonly name: "Name";
                readonly no_events: "No audit log events found";
                readonly reset: "Reset";
                readonly severity: "Severity";
                readonly source: "Source";
                readonly tags: "Tags";
                readonly timestamp: "Timestamp";
                readonly title: "Admin — Audit Log";
                readonly user: "User";
                readonly uuid: "UUID";
            };
            readonly config: {
                readonly active: "Active Configuration";
                readonly loaded_files: "Loaded Files";
                readonly title: "Admin — Configuration";
            };
            readonly dashboard: {
                readonly audit_link: "Audit Log";
                readonly config_files: "{count} files loaded.";
                readonly config_link: "Configuration";
                readonly plugins_link: "Plugins";
                readonly plugins_loaded: "{count} plugins loaded.";
                readonly stats: "{users} users, {sessions} sessions, {passkeys} passkeys.";
                readonly title: "Admin — Dashboard";
                readonly users_link: "Users";
            };
            readonly plugins: {
                readonly author: "Author:";
                readonly configuration: "Configuration";
                readonly heading: "Plugins";
                readonly loaded_from: "Loaded from";
                readonly none: "No plugins loaded.";
                readonly provided_apps: "Provided apps:";
                readonly title: "Admin — Plugins";
            };
            readonly users: {
                readonly admin_tag: "Admin";
                readonly administrator: "Administrator";
                readonly attributes: "Attributes";
                readonly audit: "Audit";
                readonly back: "Back to all users";
                readonly create: "Create User";
                readonly created_title: "New User Created";
                readonly created_url: "They can log in using this URL:";
                readonly default_image: "Default";
                readonly delete_confirm: "Are you sure you want to delete this user?";
                readonly delete_user: "Delete User";
                readonly display_name: "Display Name";
                readonly email_not_verified: "not verified";
                readonly email_verified: "verified {date}";
                readonly heading: "Users";
                readonly manage: "Manage";
                readonly manage_heading: "User Management";
                readonly manage_title: "Admin — User Management";
                readonly none: "No users!";
                readonly profile_image: "Profile Image";
                readonly registered: "Registered";
                readonly roles: "Roles";
                readonly suspend: "Suspend";
                readonly suspended: "Suspended";
                readonly tags: "Tags";
                readonly title: "Admin — Users";
                readonly unsuspend: "Unsuspend";
                readonly uuid: "UUID";
            };
        };
        readonly login: {
            readonly client: {
                readonly authorize: "Authorize";
                readonly confirm: "Are you sure you want to log in to this local client?";
                readonly success: "Login successful! You can close this tab.";
                readonly title: "Local Client Login";
            };
            readonly failed: "Login Failed";
        };
    };
    readonly location: {
        readonly country: "Country";
        readonly subdivision: "State / province";
        readonly locality: "City / town";
        readonly postal_code: "Postal code";
        readonly street1: "Street address";
        readonly street2: "Street address line 2";
    };
    readonly preference: {
        readonly debug: "Debug mode";
    };
};
/**
 * Current locale
 */
export declare let currentLocale: string;
export declare function countryName(code: string): string | undefined;
export declare function dateField(name: string): string | undefined;
export declare function conjoin(list: Iterable<string>): string;
export declare function disjoin(list: Iterable<string>): string;
export declare let currentMonthNames: string[];
type _locale = typeof currentLoaded;
export interface Locale extends _locale {
}
export interface ReplacementOptions {
    $default?: string;
    /** Whether to treat the replacement as HTML */
    $html?: boolean;
}
type _ArgsValue<V extends string[]> = UnionToIntersection<{
    [I in keyof V]: Split<V[I], '}'> extends [infer Name extends string, string] ? {
        [N in Name]: string | number | bigint | boolean;
    } : {};
}[keyof V & number]>;
type Replacements<K extends string> = ReplacementOptions & (GetByString<Locale, K> extends string ? _ArgsValue<Split<GetByString<Locale, K> & string, '{'>> : Record<string, any>);
type ReplacementsArgs<K extends string> = {} extends Replacements<K> ? [replacements?: Replacements<K>] : [replacements: Replacements<K>];
export declare function useLocale(newLocale: string): void;
export declare function escape(text: string): string;
/**
 * Get localized text for a given translation key
 * @example
 * ```ts
 * text(`example.translation.key.${dynamicPart}`, { a: 1, b: 2 });
 * ```
 */
export declare function text<const K extends string = FlattenKeys<Locale>>(key: K, ...args: ReplacementsArgs<K>): string;
export {};
