import type { BackgroundTask, TaskFilter, TaskListResult, UpdateBackgroundTask } from '../../../background-tasks/types.js';
import { StorageDomain } from '../base.js';
/**
 * Abstract storage domain for background tasks.
 * Handles persistence of task state — creation, status updates, querying, and cleanup.
 */
export declare abstract class BackgroundTasksStorage extends StorageDomain {
    constructor();
    dangerouslyClearAll(): Promise<void>;
    /** Insert a new task record. */
    abstract createTask(task: BackgroundTask): Promise<void>;
    /**
     * Partial update of a task record.
     * Only the provided fields are updated; others are left unchanged.
     */
    abstract updateTask(taskId: string, update: UpdateBackgroundTask): Promise<void>;
    /** Get a single task by ID. Returns null if not found. */
    abstract getTask(taskId: string): Promise<BackgroundTask | null>;
    /**
     * Query tasks with filters, ordering, and pagination.
     * Returns tasks matching all provided filter criteria.
     */
    abstract listTasks(filter: TaskFilter): Promise<TaskListResult>;
    /**
     * Delete a particular task by ID.
     * Used for cleanup of old completed/failed records.
     */
    abstract deleteTask(taskId: string): Promise<void>;
    /**
     * Delete tasks matching the filter criteria.
     * Used for cleanup of old completed/failed records.
     */
    abstract deleteTasks(filter: TaskFilter): Promise<void>;
    /** Count tasks currently in 'running' status across all agents. */
    abstract getRunningCount(): Promise<number>;
    /** Count tasks currently in 'running' status for a specific agent. */
    abstract getRunningCountByAgent(agentId: string): Promise<number>;
}
//# sourceMappingURL=base.d.ts.map