declare module "@tria-plc/iamui" {
  import type { ComponentType } from "react";

  export interface DesignConfig {
    brand: { appName: string; logoUrl: string };
    colors: Record<string, string>;
    typography: {
      fontFamily: string;
      headingFontFamily: string;
      baseFontSize: string;
      fontWeight: string;
    };
    shape: { radius: string };
    shadows: Record<string, string>;
    components: {
      buttonDefaultVariant?: string;
      inputDefaultSize?: string;
      inputRadius?: string;
      modalRadius?: string;
      tableHighlightOnHover?: boolean;
    };
    layout: Record<string, string | Record<string, unknown>>;
    appearance: {
      colorScheme: string;
      slots: Record<string, { styles: Record<string, string> }>;
      customCss: string;
    };
  }

  export interface UserManagementRuntimeOptions {
    basename: string;
    apiBaseUrl: string;
    apiUrl: string;
    recordApiUrl: string;
    chronicleUrl: string;
    auditApiUrl: string;
  }

  export interface UserManagementSessionSeed {
    token: string;
    refreshToken?: string;
    rememberMe: boolean;
  }

  export interface UserManagementAppProps {
    config: DesignConfig;
    runtime: UserManagementRuntimeOptions;
    session: {
      initialSession: UserManagementSessionSeed | null;
      enableEmbeddedAuthBridge: boolean;
    };
  }

  export const UserManagementApp: ComponentType<UserManagementAppProps>;
}
