import type { OAuthCredentials } from "../auth/types.ts";
/** Legacy extension OAuth prompt. */
export interface OAuthPrompt {
    message: string;
    placeholder?: string;
    allowEmpty?: boolean;
}
/** Legacy extension OAuth authorization link. */
export interface OAuthAuthInfo {
    url: string;
    instructions?: string;
}
/** Legacy extension OAuth device-code notification. */
export interface OAuthDeviceCodeInfo {
    userCode: string;
    verificationUri: string;
    /** Offer best-effort browser opening on user confirmation. Defaults to true; clients may ignore it. */
    openBrowserOnConfirm?: boolean;
    /** Offer copying of userCode on user confirmation, replacing the clipboard. Defaults to true. */
    copyCodeOnConfirm?: boolean;
    intervalSeconds?: number;
    expiresInSeconds?: number;
}
export interface OAuthSelectOption {
    id: string;
    label: string;
}
export interface OAuthSelectPrompt {
    message: string;
    options: OAuthSelectOption[];
}
/** Callback surface retained only for coding-agent extension compatibility. */
export interface OAuthLoginCallbacks {
    onAuth(info: OAuthAuthInfo): void;
    onDeviceCode(info: OAuthDeviceCodeInfo): void;
    onPrompt(prompt: OAuthPrompt): Promise<string>;
    onProgress?(message: string): void;
    onManualCodeInput?(): Promise<string>;
    onSelect(prompt: OAuthSelectPrompt): Promise<string | undefined>;
    signal?: AbortSignal;
}
export type { OAuthCredentials };
//# sourceMappingURL=extension-oauth-types.d.ts.map