/** * Linear `TaskSource` factory. Assembles the adapter from sibling modules * (createBoardSource + fetchResolvedIssue from ./fetch.ts; * createLinearIssueStatusUpdater from ./writeback.ts; getLinearClient from * ./client.ts) and converts Linear-specific shapes into the canonical * Issue/Blocker types consumers (via Board) speak. * * Status names disambiguate Linear's multiple `started` states ("In Progress" * vs "In Review"). Unmatched statuses fall back to workflow `state.type` so * renamed or custom columns still preserve the broad lifecycle behavior. * * Description is populated on both `fetch()` Issues and `resolveOne()` Issues. */ import type { AdapterContext } from "../../adapterDefinition.ts"; import { type Issue as CanonicalIssue, type TaskSource } from "../../taskSource.ts"; import type { LinearAdapterConfig } from "./schema.ts"; import { type Issue as LinearIssue } from "./fetch.ts"; import { type LinearStatusNames } from "./statusNames.ts"; /** * Adapter-private payload threaded through `Issue.sourceRef`. Consumers * MUST NOT inspect; only the Linear adapter reads it. */ export interface LinearSourceRef { uuid: string; statusId: string; teamId: string; /** Linear workflow `state.type` for the issue at fetch time. */ stateType: string; /** Human-readable native status name, e.g. "In Progress", "Shipped". Diagnostic display only. */ nativeStatus: string; } export declare function toCanonicalIssue(linearIssue: LinearIssue, sourceName: string, statusNames?: LinearStatusNames): CanonicalIssue; export declare function createLinearTaskSource(config: LinearAdapterConfig, context: AdapterContext): TaskSource; //# sourceMappingURL=factory.d.ts.map