/** * The tale flow — the whole of the CLI's document surface: * * compose tale.json → validate → draft (gate + push, prints the draft URL) → * human reviews in the browser → publish → (revise → publish)* → retract. * * `validate` is the agent's repair loop: deterministic zod-path errors, exit code 1 on * any issue. `draft` runs the redaction + exposure gate — nothing leaves the machine * unseen. Visual review happens at the draft URL, which renders with the production * view and a DRAFT banner; only the holder of the unguessable URL can see it. * * With no API key at all (or --anon), `draft` instead publishes ANONYMOUSLY: live the * moment the POST lands, no draft step, immutable, hard-deleted after 24 hours unless * the printed claim link is used to keep it. The gate is the only human step on that * path, so it still runs. Anonymous applies to draft/create only — publish, revise and * retract keep refusing without a key. */ export declare const TALE_USAGE = "Usage: taleseal [options]\n\nCompose a whole tale, or edit an existing draft block by block. Editing is id-addressed\nand atomic: read the outline for the block ids and the draftSeq, then send ops echoing that\ndraftSeq as --base. A stale base is a conflict (nothing applies, you re-base on the outline\nit hands back); an invalid batch comes back with the exact fixes; a batch applies whole or\nnot at all.\n\nCompose and publish:\n validate Check against the schema: each problem with its exact\n JSON path; exit code 1 on any. The compose/repair loop.\n draft Redact, show the exposure gate, then create the tale as\n a DRAFT and print its URL (carries a DRAFT banner).\n With no API key at all (or --anon) it publishes LIVE\n anonymously instead: no draft step, no account; the\n page is hard-deleted after 24 hours unless the claim\n link it prints is used to keep it.\n publish Promote the current draft to the revision the recipient\n sees. Prompts on a terminal; --yes skips.\n revise Store a new whole-tale draft body. The recipient\n keeps seeing the published revision until the next publish.\n retract Destroy the tale and every revision. The URL answers\n 410 Gone forever. No prompt: the emergency stop.\n\nRead a draft:\n pull [file] Write the current draft body to (or stdout); how\n a fresh session fetches a tale to revise.\n outline The draftSeq you echo as --base, plus one line per block.\n get [blockId...] Full JSON of the named blocks (or all), to see a block's\n current content before you replace it.\n\nEdit a draft (id-addressed, atomic, optimistic concurrency):\n ops Apply a JSON array of ops in one atomic batch.\n insert --after | --before | --start | --end\n replace \n remove \n move --after | --before | --start | --end\n set-envelope --title \u2026 | --standfirst \u2026 | --recipient \u2026 |\n --stationery \u2026 | --sender-name \u2026 | --sender-org \u2026 |\n --cta-label \u2026 | --cta-url \u2026 | --expires-at \u2026 |\n --clear \n\nOptions:\n --base The draftSeq from `outline`, echoed as an edit's base (the concurrency\n token). Omit it and the CLI reads the current draftSeq itself: convenient,\n but a concurrent edit would be clobbered; pass --base to be safe.\n --idem Idempotency key: re-sending a batch with the same key never re-applies.\n --anon Draft only: publish anonymously even when a key is available; live at\n once, immutable, deleted after 24 hours unless claimed.\n --yes Skip the pre-draft/pre-publish prompt (hooks, CI)\n --json Print machine-readable results\n -h, --help Show this help\n\nA tale is versioned: revising keeps the recipient's link stable. Cite your sources in an\n\"evidence\" block. Branding (colours, logo) is not a tale or CLI concern: it is a paid\nadd-on the account owner configures once at https://taleseal.com/dashboard/brand, and\nevery tale picks it up automatically.\n\nOther commands:\n upload Upload an image and print the reference an \"image\" block carries.\n login Sign in via the browser and store an API key.\n logout Remove the stored API key."; interface TaleCliOptions { yes: boolean; json: boolean; /** --anon: publish the draft anonymously even when a key is available (draft only) */ anon: boolean; /** --base : the draftSeq echoed as the edit's CAS token; omitted ⇒ read the current one */ base?: number; after?: string; before?: string; start: boolean; end: boolean; idem?: string; title?: string; standfirst?: string; recipient?: string; stationery?: string; senderName?: string; senderOrg?: string; ctaLabel?: string; ctaUrl?: string; expiresAt?: string; clear?: string; } export declare function taleCommand(positionals: string[], opts: TaleCliOptions): Promise; export declare function setTaleClient(client: string): void; export {};