export interface GoalDaemonOptions {
    maxIterations?: number;
    maxWallClockHours?: number;
    maxDailyCostUsd?: number;
    maxConsecutiveFailures?: number;
    intervalMs?: number;
    provider?: string;
    approvalPolicy?: string;
    onVerify: (goalId: string) => Promise<void>;
    onContinue: (goalId: string, options: {
        provider?: string;
        approvalPolicy?: string;
    }) => Promise<void>;
    onBlock: (goalId: string, reason: string) => Promise<void>;
}
export declare class GoalDaemon {
    private instances;
    start(goalId: string, options: GoalDaemonOptions): boolean;
    stop(goalId: string): boolean;
    isRunning(goalId: string): boolean;
    wake(goalId: string, reason?: string): boolean;
    sleep(goalId: string): boolean;
    getStatus(goalId: string): {
        running: boolean;
        sleeping: boolean;
        iterationCount: number;
        consecutiveFailures: number;
        startTime: number;
        lastRunAt: number | null;
    } | null;
    listRunning(): Array<{
        goalId: string;
        status: ReturnType<GoalDaemon["getStatus"]>;
    }>;
    stopAll(): void;
    private scheduleLoop;
    private executeLoop;
    private runLoop;
}
export declare const defaultGoalDaemon: GoalDaemon;
