export interface AuthRuntimeApi {
  mount(root?: ParentNode): void;
  unmount(root?: ParentNode): void;
  registerPasskey(element: HTMLElement): Promise<void>;
  authenticatePasskey(element: HTMLElement): Promise<void>;
}

declare global {
  interface Window {
    WRNexusAuth?: AuthRuntimeApi;
  }
}

export function authRuntime(): AuthRuntimeApi | undefined {
  return typeof window === "undefined" ? undefined : window.WRNexusAuth;
}
