/** Handlers exposed by the main auth page (method select). */
export interface MainAuthPageHandlers {
    /** Called when the user selects "Continue with Mobile". */
    onContinueWithMobile: () => void;
    /** Called when the user selects "Continue with Email". */
    onContinueWithEmail: () => void;
    /** Called when the user selects "Continue with Google". */
    onContinueWithGoogle: () => void;
    /** Called when the user selects "Continue with Apple". */
    onContinueWithApple: () => void;
}
/** Config for lib-handled Google sign-in. When set, the lib runs the OAuth flow and calls onCredential. */
export interface MainLoginGoogleProviderConfig {
    /** Google OAuth 2.0 client ID. */
    clientId: string;
    /** Called with ID token (One Tap) or auth code (button popup). Send to your backend to verify. */
    onCredential: (credential: string) => void;
    /** Enable Google One Tap prompt for automatic sign-in. */
    enableOneTap?: boolean;
}
/** Config for lib-handled Apple sign-in (stub). When set, the lib will run the flow and call onCredential when implemented. */
export interface MainLoginAppleProviderConfig {
    /** Apple Services ID (client ID) configured in the Apple Developer portal. */
    clientId: string;
    /** OAuth redirect URI registered with Apple for the sign-in flow. */
    redirectUri: string;
    /** Called with the Apple identity token after a successful sign-in. Send to your backend to verify. */
    onCredential: (credential: string) => void;
}
/** Optional provider config so the lib handles Google/Apple API calls. */
export interface MainLoginPageProvidersConfig {
    /** Google sign-in configuration. When set, the lib handles the Google OAuth flow. */
    google?: MainLoginGoogleProviderConfig;
    /** Apple sign-in configuration. When set, the lib handles the Apple OAuth flow. */
    apple?: MainLoginAppleProviderConfig;
}
/** Options for useMainAuthPageHandlers: optional callback overrides + optional provider config for lib-handled OAuth. */
export type UseMainAuthPageHandlersOptions = Partial<MainAuthPageHandlers> & {
    providers?: MainLoginPageProvidersConfig;
    /**
     * Custom handler for the "Enterprise Login" header CTA. When omitted,
     * the header redirects to the default enterprise URL
     * (`DEFAULT_ENTERPRISE_LOGIN_URL`).
     */
    onEnterpriseLogin?: () => void;
    /**
     * Override the default enterprise redirect URL. Ignored when
     * `onEnterpriseLogin` is provided. Defaults to `https://docthub.com/`.
     */
    enterpriseLoginUrl?: string;
};
