/**
 * Universal Login Template — slot-based body markup.
 *
 * Tenants opt into custom chrome by uploading a body fragment that uses these
 * slot tokens. The default body (`DEFAULT_UNIVERSAL_LOGIN_TEMPLATE`) is
 * what's served when no custom template is stored, and is what tenants
 * should copy and edit.
 *
 * The page shell (`<!DOCTYPE>`, `<html>`, `<head>`, body styles, dark-mode
 * runtime, background tint) is fixed in code — it's not part of the tenant
 * template. This keeps tenants out of CSS/runtime authoring and limits
 * customization to layout: hide a chip by deleting its token, reorder by
 * moving them.
 *
 * Slot tokens:
 *   `{%- auth0:widget -%}`             — widget container (required)
 *   `{%- authhero:logo -%}`            — logo chip (top-left)
 *   `{%- authhero:settings -%}`        — settings chip (top-right), wraps the
 *                                        dark-mode toggle + language picker
 *   `{%- authhero:dark-mode-toggle -%}`— dark-mode button only
 *   `{%- authhero:language-picker -%}` — language picker only
 *   `{%- authhero:powered-by -%}`      — powered-by chip (bottom-left)
 *   `{%- authhero:legal -%}`           — legal/terms chip (bottom-right)
 */
import { type DarkModePreference } from "./u2-widget-page";
export declare const REQUIRED_SLOT = "{%- auth0:widget -%}";
/**
 * Canonical default body. Mirrors the layout the JSX `WidgetPage` emits.
 * Tenants who want to hide a chip should copy this, delete a slot, and PUT
 * it back via `PUT /api/v2/branding/templates/universal-login`.
 */
export declare const DEFAULT_UNIVERSAL_LOGIN_TEMPLATE = "{%- auth0:widget -%}\n{%- authhero:logo -%}\n{%- authhero:settings -%}\n{%- authhero:powered-by -%}\n{%- authhero:legal -%}\n";
export type TemplateSlotOptions = {
    widgetHtml: string;
    logoUrl?: string | null;
    clientName: string;
    darkMode: DarkModePreference;
    language?: string;
    availableLanguages?: string[];
    poweredBy?: {
        url: string;
        href?: string;
        alt?: string;
        height?: number;
    };
    termsAndConditionsUrl?: string;
};
/**
 * Expand slot tokens in a template body. Unknown tokens are left in place
 * (so tenants can spot typos in their templates).
 */
export declare function applyUniversalLoginTemplate(template: string, opts: TemplateSlotOptions & {
    screenId: string;
    widgetContainerStyle?: string;
}): string;
