import type { GrawkusConfig } from './types.js';
import { streamChat } from './api.js';
import { type OpenAICodexAuthStatus } from './openai-oauth.js';
type StreamChatFn = typeof streamChat;
export interface OpenAICodexSmokeResult {
    ok: boolean;
    phase: 'auth' | 'request' | 'stream';
    model: string;
    baseURL: string;
    auth: Pick<OpenAICodexAuthStatus, 'available' | 'source' | 'authPath' | 'hasAccountId' | 'accessTokenExpiresAt' | 'accessTokenExpired' | 'error'>;
    elapsedMs: number;
    eventCount: number;
    text: string;
    usage?: {
        prompt: number;
        completion: number;
        total: number;
    };
    error?: string;
}
interface SmokeOptions {
    model?: string;
    timeoutMs?: number;
    stream?: StreamChatFn;
}
export declare function runOpenAICodexSmokeTest(config: GrawkusConfig, options?: SmokeOptions): Promise<OpenAICodexSmokeResult>;
export declare function formatOpenAICodexSmokeResult(result: OpenAICodexSmokeResult): string;
export {};
