import { type HeartbeatSchedulerEvent, type HeartbeatTaskRunner } from '../../../../core/heartbeat/index.js';
type CreateHeartbeatTaskArgs = {
    workspaceId?: string;
    id?: string;
    name?: string;
    task: string;
    enabled?: boolean;
    continuationMode?: 'operator' | 'agent';
    intervalMs?: number;
    defer?: boolean;
    model?: string;
    maxSteps?: number;
    workspaceRoot?: string;
    stateDir?: string;
    searchIgnoreDirs?: string[];
    systemContext?: string;
};
type UpdateHeartbeatTaskArgs = {
    name?: string;
    task?: string;
    enabled?: boolean;
    continuationMode?: 'operator' | 'agent';
    intervalMs?: number;
    model?: string | null;
    maxSteps?: number | null;
    searchIgnoreDirs?: string[];
    systemContext?: string;
};
type RunHeartbeatTaskNowArgs = {
    taskId: string;
    workspaceRoot: string;
    stateDir?: string;
    apiKey?: string;
    preferApiKey?: boolean;
    model?: string;
    maxSteps?: number;
    searchIgnoreDirs?: string[];
    systemContext?: string;
    runner?: HeartbeatTaskRunner;
    onEvent?: (event: HeartbeatSchedulerEvent) => void;
};
type RunDueHeartbeatTasksArgs = Omit<RunHeartbeatTaskNowArgs, 'taskId' | 'runner'>;
export declare class ControlPlaneHeartbeatController {
    static listTasks(stateRoot: string): Promise<import("../../../../core/heartbeat/index.js").HeartbeatTaskView[]>;
    static listRuns(stateRoot: string, options?: {
        taskId?: string;
        limit?: number;
    }): Promise<import("../../../../core/heartbeat/index.js").HeartbeatRunView[]>;
    static createTask(stateRoot: string, args: CreateHeartbeatTaskArgs): Promise<import("../../../../core/heartbeat/index.js").HeartbeatTaskView>;
    static updateTask(stateRoot: string, taskId: string, args: UpdateHeartbeatTaskArgs): Promise<import("../../../../core/heartbeat/index.js").HeartbeatTaskView>;
    static deleteTask(stateRoot: string, taskId: string): Promise<import("../../../../core/heartbeat/index.js").HeartbeatTaskView>;
    static readTask(stateRoot: string, taskId: string, options?: {
        runLimit?: number;
    }): Promise<{
        task: import("../../../../core/heartbeat/index.js").HeartbeatTaskView;
        runs: import("../../../../core/heartbeat/index.js").HeartbeatRunView[];
    }>;
    static readRun(stateRoot: string, taskId: string, runId: string): Promise<import("../../../../core/heartbeat/index.js").HeartbeatRunView | undefined>;
    static setTaskEnabled(stateRoot: string, taskId: string, enabled: boolean): Promise<import("../../../../core/heartbeat/index.js").HeartbeatTaskView>;
    static resumeTask(stateRoot: string, taskId: string): Promise<import("../../../../core/heartbeat/index.js").HeartbeatTaskView>;
    static triggerTaskRun(stateRoot: string, taskId: string): Promise<import("../../../../core/heartbeat/index.js").HeartbeatTaskView>;
    static runTaskNow(stateRoot: string, args: RunHeartbeatTaskNowArgs): Promise<{
        task: import("../../../../core/heartbeat/index.js").HeartbeatTaskView;
        run: import("../../../../core/heartbeat/index.js").HeartbeatRunView;
        checked: number;
        ran: number;
        failed: number;
        records: import("../../../../core/heartbeat/index.js").HeartbeatTaskRunRecord[];
    }>;
    static runDueTasks(stateRoot: string, args: RunDueHeartbeatTasksArgs): Promise<import("../../../../core/heartbeat/index.js").RunDueHeartbeatTasksResult>;
}
export {};
//# sourceMappingURL=heartbeat.d.ts.map