/**
 * Headless Google OAuth Controller
 *
 * Implements the "remote user" Google OAuth flow for callers without a
 * terminal (e.g., Slack agents, email). The agent posts to `/oauth/google/start`
 * to get an `authUrl` that the user clicks on any device; the Gemini CLI
 * Workspace cloud function renders the credentials JSON; the agent posts
 * the pasted JSON back to `/oauth/google/complete` to save it as a Crewly
 * credential.
 *
 * This flow is separate from `/oauth/import-gemini-cli` (which reads from
 * the on-box extension's token file) and lives in its own module so the
 * credentials CRUD controller stays focused.
 *
 * @module controllers/credentials/google-oauth.controller
 */
import type { Request, Response, NextFunction } from 'express';
/**
 * POST /api/credentials/oauth/google/start
 *
 * Build a Google OAuth URL that the caller can send to a remote user (via
 * Slack, email, etc.). The URL opens on the user's device, they sign in,
 * and the cloud function returns a page showing the credentials JSON for
 * the user to copy back.
 *
 * Body: `{ scopes?: string[] }` — optional scope override
 * Returns: `{ success, data: { authUrl } }`
 */
export declare function startGoogleOAuth(req: Request, res: Response, _next: NextFunction): Promise<void>;
/**
 * POST /api/credentials/oauth/google/complete
 *
 * Accept the credentials JSON the user copied from the OAuth success page,
 * verify it, fetch the account email, and save as a new Crewly credential.
 *
 * Body: `{ name: string, credentialsJson: string | object }`
 * Returns: `{ success, data: CredentialRegistryEntry }`
 */
export declare function completeGoogleOAuth(req: Request, res: Response, _next: NextFunction): Promise<void>;
//# sourceMappingURL=google-oauth.controller.d.ts.map