/**
 * @license
 * Copyright 2025 OElite Platform
 * SPDX-License-Identifier: Apache-2.0
 */
import { EventEmitter } from 'node:events';
import type { Config } from '../config/config.js';
export declare const claudeCodeOAuth2Events: EventEmitter<[never]>;
export declare enum ClaudeCodeOAuth2Event {
    AuthUri = "authUri",
    AuthProgress = "authProgress",
    AuthCancel = "authCancel",
    AuthSuccess = "authSuccess",
    AuthError = "authError"
}
export interface ClaudeCodeOAuthWebLogin {
    authUrl: string;
    loginCompletePromise: Promise<void>;
}
export interface ClaudeCodeCredentials {
    access_token: string;
    refresh_token?: string;
    expires_at?: number;
    token_type?: string;
}
export interface ClaudeCodeAuthResponse {
    verification_uri: string;
    verification_uri_complete: string;
    user_code?: string;
    expires_in: number;
}
/**
 * Clear cached credentials
 */
export declare function clearClaudeCodeCredentials(): Promise<void>;
/**
 * Initiate browser-based OAuth flow for Claude Code
 */
export declare function authWithClaudeCodeWeb(): Promise<ClaudeCodeOAuthWebLogin>;
/**
 * Get Claude Code OAuth access token
 * Automatically triggers OAuth flow if no cached credentials exist
 */
export declare function getClaudeCodeOAuthToken(config: Config): Promise<string>;
