import { WorkspaceRepository, TaskRow, ProjectRow } from "@mcoda/db"; import { WorkspaceResolution } from "../../workspace/WorkspaceManager.js"; export interface TaskSelectionFilters { projectKey?: string; epicKey?: string; storyKey?: string; taskKeys?: string[]; statusFilter?: string[]; ignoreStatusFilter?: boolean; includeTypes?: string[]; excludeTypes?: string[]; limit?: number; parallel?: number; ignoreDependencies?: boolean; missingContextPolicy?: MissingContextPolicy; } export type MissingContextPolicy = "allow" | "warn" | "block"; export interface SelectedTask { task: TaskRow & { epicKey: string; storyKey: string; epicTitle?: string; storyTitle?: string; storyDescription?: string; acceptanceCriteria?: string[]; }; dependencies: { ids: string[]; keys: string[]; blocking: string[]; }; } export interface TaskSelectionPlan { project?: ProjectRow; filters: TaskSelectionFilters & { effectiveStatuses: string[]; }; ordered: SelectedTask[]; warnings: string[]; } export declare class TaskSelectionService { private workspace; private workspaceRepo; constructor(workspace: WorkspaceResolution, workspaceRepo: WorkspaceRepository); static create(workspace: WorkspaceResolution): Promise; close(): Promise; private fetchProject; private buildTaskFromRow; private loadTasks; private loadDependencies; private loadMissingContext; private topologicalOrder; selectTasks(filters: TaskSelectionFilters): Promise; } //# sourceMappingURL=TaskSelectionService.d.ts.map