export interface OAuthLoginResult {
    success: boolean;
    error?: string;
}
interface OAuthFlowCallbacks {
    onShowCode: (verificationUrl: string, userCode: string) => void;
    onPollingStart: () => void;
    delayBeforePollMs?: number;
}
export type OAuthFlow = (providerName: string, callbacks: OAuthFlowCallbacks) => Promise<unknown>;
interface OAuthLoginProps {
    providerName: string;
    displayName: string;
    runFlow: OAuthFlow;
    onDone?: (result: OAuthLoginResult) => void;
}
/**
 * Generic device-flow OAuth login UI. Shared by /codex-login and
 * /copilot-login — supplies the provider-specific flow function and the
 * display name; the rest of the lifecycle (starting → visit → polling →
 * done/error) is identical for any device-flow OAuth provider.
 */
export declare function OAuthLogin({ providerName, displayName, runFlow, onDone, }: OAuthLoginProps): import("react").JSX.Element | null;
export {};
//# sourceMappingURL=oauth-login.d.ts.map