/**
 * @license
 * Copyright 2025 Google LLC
 * SPDX-License-Identifier: Apache-2.0
 */
import { OAuth2Client } from 'google-auth-library';
import type { Config } from '../config/config.js';
import { AuthType } from '../core/contentGenerator.js';
/**
 * An Authentication URL for updating the credentials of a Oauth2Client
 * as well as a promise that will resolve when the credentials have
 * been refreshed (or which throws error when refreshing credentials failed).
 */
export interface OauthWebLogin {
    authUrl: string;
    loginCompletePromise: Promise<void>;
}
export declare function performLogin(authType: AuthType, config: Config): Promise<boolean>;
export declare function getOauthClient(authType: AuthType, config: Config): Promise<OAuth2Client>;
export declare function getAvailablePort(): Promise<number>;
export declare function authWithCode(client: OAuth2Client, code: string, codeVerifier: {
    codeVerifier: string;
} | undefined, redirectUri: string): Promise<boolean>;
export declare function clearCachedCredentialFile(): Promise<void>;
/**
 * Clears the OAuth client cache to prevent session leakage during logout.
 * This is critical for security - without clearing the cache, users cannot properly logout.
 *
 * @param authType Optional specific auth type to clear. If not provided, clears entire cache.
 */
export declare function clearOauthClientCache(authType?: AuthType): void;
export declare function resetOauthClientForTesting(): void;
