import type { JamDeps } from "../deps.js"; import type { CreateIssueWritePlan, WriteApplyReceipt } from "../domain/write.js"; /** * Create the issue a plan describes, then go and look at what was created. * * The same three-step shape as every other apply, with one substitution. * Updating an existing issue re-reads that issue and compares its revision; * there is no issue to re-read here, so what gets checked instead is the * premise the plan was built on - the project's create schema. That is * creation's concurrency boundary. * * 1. Re-derive the schema and check the plan's premises still hold. If the * issue type went away, or a required field JAM cannot fill appeared, or a * resolved value is no longer offered, nothing is sent. * 2. POST the create exactly once. No retry, ever - see below. * 3. Read the new issue by the key Jira returned, and check it says what the * plan intended. A 201 with a key is Jira accepting a request, not * evidence that the issue exists as described. */ export declare function applyCreateIssue(deps: JamDeps, plan: CreateIssueWritePlan): Promise;