import type { GoogleTokens, VisionClawConfig } from "../config/types.js";
/**
 * Run the Google OAuth2 flow:
 * 1. Start a local HTTP server on a random port
 * 2. Open the consent URL in the user's browser
 * 3. Receive the callback with the authorization code
 * 4. Exchange the code for tokens
 * 5. Save the tokens to disk
 */
export interface RunGoogleOAuthOptions {
    openUrl?: (url: string) => Promise<void>;
    /**
     * Optional onboarding service client for reporting tokens back to the server.
     * When provided, the tokens will be reported after local write.
     * A network failure in the report call is non-fatal (warn only).
     */
    onboardingClient?: {
        reportGoogleTokens: (tokensJson: string) => Promise<boolean>;
    };
}
export declare function runGoogleOAuth(config?: Pick<VisionClawConfig, "googleClientId" | "googleClientSecret">, options?: RunGoogleOAuthOptions): Promise<GoogleTokens>;
//# sourceMappingURL=google-auth.d.ts.map