/** * Board composer — fans `verify` / `listTasks` / `getTask` / `markInProgress` / * `markInReview` across N `TaskSource` adapters. Even a single-source config * goes through this; the moment we skip the wrapper we grow Linear assumptions * back into consumers. */ import { type BoardState, type Issue, type MarkDoneResult, type MarkInReviewResult, type TaskSource } from "./taskSource.ts"; export interface Board { verify: () => Promise; fetch: () => Promise; /** * Accepts either canonical (`linear:eng-220`) or natural (`eng-220`) ids, * plus unique prefixes of current listed tasks. Natural ids fan out across * sources; ambiguous matches throw. */ resolveOne: (canonicalOrNaturalId: string) => Promise; /** Routes to the adapter whose `name` matches `issue.source`. Unknown source throws. */ markInProgress: (issue: Issue) => Promise; /** * Advances a task to in-review on the adapter whose `name` matches * `issue.source`. Unknown source throws. Adapters with no in-review concept * return `unsupported` (see `TaskSource.markInReview`). */ markInReview: (issue: Issue) => Promise; /** * Advances a task to done on the adapter whose `name` matches * `issue.source`. Unknown source throws. Sources that don't implement the * optional `markDone` return `unsupported` (see `TaskSource.markDone`). */ markDone: (issue: Issue) => Promise; } export declare function createBoard(sources: readonly TaskSource[]): Board; //# sourceMappingURL=board.d.ts.map