import type { CLIFlags } from './args.js'; export interface PromoteResult { ok: boolean; message: string; /** The path the draft moved to (relative to projectRoot). */ certifiedPath?: string; /** The patch the human still needs to apply to datalex-manifest.json. */ datalexManifestDiff?: string; } /** * Promote a Tier-2 draft block from `blocks/_drafts/.dql` or * `domains//blocks/_drafts/.dql` to the canonical block * location, flipping `status` to `certified`. When a DataLex contract is * supplied, the promoted block is also bound to that contract. * * Companion to the dql-mcp `query_via_metadata` tool. Together they close * the graduated-trust promotion loop: * * ask -> no Tier-1 hit -> query_via_metadata writes a draft * -> human reviews / refines * -> dql certify --from-draft * -> next ask hits Tier-1 forever * * Behavior: * 1. Validates the draft exists and has status=draft. * 2. Moves the file to domains//blocks/.dql when that domain * layout exists, otherwise blocks//.dql. * 3. Flips `status = "draft"` to `status = "certified"`. * 4. Optionally sets `datalex_contract = ""` (provided via * --contract or taken from `proposed_contract_id` with `@1` appended). * 5. Sets `owner = ""` from --owner if provided. * 6. Drops Tier-2 proposal metadata fields (their job is done). * 7. Computes the optional patch the human still needs to apply to * datalex-manifest.json when a contract is present. * * Does NOT auto-modify datalex-manifest.json. That file is hand-curated * until the DataLex compiler ships its v1 emitter; this command shows * the user the exact diff to apply. */ export declare function promoteFromDraft(projectRoot: string, flags: CLIFlags): PromoteResult; //# sourceMappingURL=promote-from-draft.d.ts.map