/** * pop task edit-meta — metadata-only editing via TaskManager.updateTaskMetadata. * * updateTaskMetadata(id, newTitle, newMetadataHash) rewrites the title and * IPFS pointer while preserving payout/bounty fields verbatim on-chain (no * budget side effects). Like update, it is a full overwrite of the metadata * pair, so we read the current name/description first (subgraph → IPFS * fallback) and merge. * * Status gate — VERIFIED against contracts origin/main src/TaskManager.sol * (updateTaskMetadata): identical to updateTask — * `if (t.status == Status.COMPLETED || t.status == Status.CANCELLED) revert BadStatus();` * so UNCLAIMED / CLAIMED / SUBMITTED all pass; only terminal states refuse. * Permission gate (not pre-checked; masks aren't readable on-chain): * executor / project manager always; EDIT_META (bit 64) or EDIT_FULL * (bit 128) in any non-terminal status; CREATE only while UNCLAIMED. */ import type { Argv, ArgumentsCamelCase } from 'yargs'; interface EditMetaArgs { org: string; task: string; name?: string; description?: string; chain?: number; rpc?: string; 'private-key'?: string; 'dry-run'?: boolean; yes?: boolean; preflight?: boolean; } export declare const editMetaHandler: { builder: (yargs: Argv) => Argv<{ task: string; } & { name: string | undefined; } & { description: string | undefined; }>; handler: (argv: ArgumentsCamelCase) => Promise; }; export {};