import { type AgentManifestService } from "../../agents/index.js"; import type { OpenGoatPaths } from "../../domain/opengoat-paths.js"; import type { FileSystemPort } from "../../ports/file-system.port.js"; import type { PathPort } from "../../ports/path.port.js"; import type { CreateTaskOptions, ListTasksOptions, TaskRecord } from "../domain/board.js"; interface BoardServiceDeps { fileSystem: FileSystemPort; pathPort: PathPort; nowIso: () => string; agentManifestService: AgentManifestService; } export declare class BoardService { private readonly fileSystem; private readonly pathPort; private readonly nowIso; private readonly agentManifestService; private sqlPromise?; private dbPromise?; private dbPath?; private dbFileFingerprint?; constructor(deps: BoardServiceDeps); createTask(paths: OpenGoatPaths, actorId: string, options: CreateTaskOptions): Promise; listTasks(paths: OpenGoatPaths, options?: ListTasksOptions): Promise; listLatestTasks(paths: OpenGoatPaths, options?: ListTasksOptions): Promise; listLatestTasksPage(paths: OpenGoatPaths, options?: { assignee?: string; owner?: string; status?: string; limit?: number; offset?: number; }): Promise<{ tasks: TaskRecord[]; total: number; limit: number; offset: number; }>; getTask(paths: OpenGoatPaths, taskId: string): Promise; deleteTasks(paths: OpenGoatPaths, actorId: string, taskIds: string[]): Promise<{ deletedTaskIds: string[]; deletedCount: number; }>; updateTaskStatus(paths: OpenGoatPaths, actorId: string, taskId: string, status: string, reason?: string): Promise; listPendingTaskIdsOlderThan(paths: OpenGoatPaths, olderThanMinutes: number): Promise; listDoingTaskIdsOlderThan(paths: OpenGoatPaths, olderThanMinutes: number): Promise; resetTaskStatusTimeout(paths: OpenGoatPaths, taskId: string, status: string): Promise; addTaskBlocker(paths: OpenGoatPaths, actorId: string, taskId: string, blocker: string): Promise; addTaskArtifact(paths: OpenGoatPaths, actorId: string, taskId: string, content: string): Promise; addTaskWorklog(paths: OpenGoatPaths, actorId: string, taskId: string, content: string): Promise; private assertTaskUpdatePermission; private hydrateTaskRows; private requireTask; private resolveTaskId; private hydrateTaskRow; private getDatabase; private openAndMigrate; private ensureInternalTaskBucket; private getSqlJs; private persistDatabase; private readDbFileFingerprint; private execute; private queryAll; private queryOne; private ensureTaskProjectColumnRemoved; private ensureTaskStatusReasonColumn; private ensureTaskStatusUpdatedAtColumn; private ensureTaskUpdatedAtColumn; private ensureTaskTimestampInsertCompatibility; private ensureTaskTimestampAutomation; private ensureBoardDefaultColumn; private touchTaskUpdatedAt; private resolveNowIso; } export {};