import { OAuthTokenStorage } from './store'; /** * Gemini (Code Assist) OAuth flow — port từ CLIProxyAPI * `internal/auth/gemini/gemini_auth.go`. * * Khác Claude/Codex: dùng Google OAuth 2.0 chuẩn với client_id + client_secret * (PUBLIC client của Gemini CLI), KHÔNG dùng PKCE. * * Hai constants này là PUBLIC client của Gemini CLI — đã được Google công bố * (xem gemini-cli source code) và CLIProxyAPI hardcode tương tự. */ export declare const GEMINI_AUTH_URL = "https://accounts.google.com/o/oauth2/auth"; export declare const GEMINI_TOKEN_URL = "https://oauth2.googleapis.com/token"; export declare const GEMINI_USERINFO_URL = "https://www.googleapis.com/oauth2/v1/userinfo?alt=json"; export declare const GEMINI_CLIENT_ID = "681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com"; export declare const GEMINI_CLIENT_SECRET = "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"; export declare const GEMINI_DEFAULT_CALLBACK_PORT = 8085; export declare const GEMINI_SCOPES: string[]; export interface GeminiAuthSession { authUrl: string; state: string; redirectUri: string; } export declare function startGeminiAuth(callbackPort?: number): GeminiAuthSession; export declare function exchangeGeminiCodeForTokens(code: string, redirectUri: string, account?: string): Promise; export declare function refreshGeminiToken(current: OAuthTokenStorage): Promise;