import type { BrowserAdapter } from "@sudobility/webgraph_parser"; import type { AuthProviderType } from "@sudobility/webgraph_parser"; export interface SSOFlowStep { /** CSS selector to wait for before performing the action */ waitFor: string; /** Action to perform */ action: "type" | "click" | "wait"; /** CSS selector to interact with (for type/click) */ selector?: string; /** Value to type (for "type" action). "{{email}}" and "{{password}}" are placeholders */ value?: string; /** Timeout in ms for waiting */ timeout?: number; } export interface SSOCredentials { email: string; password: string; } /** * Execute an SSO login flow for a specific provider. * * After clicking the SSO button the function races two signals: * - **Redirect:** the current tab navigates to the provider (same-window OAuth) * - **Popup:** a new tab/window opens (popup-based OAuth) * * Whichever fires first determines the execution path. The provider- * specific steps (type email → next → password → submit) are the same * in both cases — only the tab context differs. */ export declare function executeSSOFlow(adapter: BrowserAdapter, ssoButtonSelector: string, provider: AuthProviderType, credentials: SSOCredentials, appOrigin: string): Promise; export declare function getSSOFlow(provider: AuthProviderType): SSOFlowStep[]; //# sourceMappingURL=sso-handler.d.ts.map