import { InventoryStats } from './ChatBanner';
export declare function buildInventoryStats(root: string, sessionId: string): InventoryStats;
export interface ChatSmokeResult {
    ok: boolean;
    marker: 'OPENLIFE_CHAT_SMOKE_OK' | 'OPENLIFE_CHAT_SMOKE_FAIL';
    detail: string;
    sessionId: string;
    model: string;
    cwd: string;
}
/**
 * Non-interactive chat availability check used by `openlife chat --test` and
 * by the installer. It deliberately avoids constructing Gateway/Brain so setup
 * can validate the terminal shell without hanging on provider credentials.
 */
export declare function runChatSmoke(opts?: RunChatOptions): ChatSmokeResult;
interface RunChatOptions {
    /** Force a specific root (default: cwd). Used by tests. */
    cwd?: string;
}
export declare function runChat(opts?: RunChatOptions): Promise<void>;
export {};
