import { type Config } from "./config.js";
export type ResolveResult = {
    ok: true;
    model: unknown;
    apiKey: string;
    headers?: Record<string, string>;
} | {
    ok: false;
    reason: string;
};
type NotifyLevel = "warning" | "info" | "error";
type Notify = (message: string, type?: NotifyLevel) => void;
export interface ResolveCtx {
    model: unknown;
    modelRegistry: any;
    hasUI: boolean;
    ui?: {
        notify: Notify;
    };
}
export interface LaunchCtx {
    hasUI: boolean;
    ui?: {
        notify: Notify;
    };
}
export declare class Runtime {
    config: Config;
    configLoaded: boolean;
    observerInFlight: boolean;
    observerPromise: Promise<void> | null;
    compactInFlight: boolean;
    compactHookInFlight: boolean;
    resolveFailureNotified: boolean;
    ensureConfig(cwd: string): void;
    resolveModel(ctx: ResolveCtx): Promise<ResolveResult>;
    launchObserverTask(ctx: LaunchCtx, label: string, work: () => Promise<void>): Promise<void>;
}
export {};
//# sourceMappingURL=runtime.d.ts.map