export declare const DISCORD_COORDINATION_PLAYBOOK_VERSION = 2; export declare const DISCORD_COORDINATION_STATUS_SIGNALS: readonly [Readonly<{ emoji: "👀"; meaning: "seen-or-claimed"; }>, Readonly<{ emoji: "✅"; meaning: "done-or-approved"; }>, Readonly<{ emoji: "🛑"; meaning: "blocked"; }>, Readonly<{ emoji: "❌"; meaning: "declined"; }>, Readonly<{ emoji: "🤖"; meaning: "automated-reply-expected"; }>]; export declare const DISCORD_COORDINATION_PLAYBOOK: Readonly<{ authorityGranted: false; availability: Readonly<{ configuredToolsetsRequired: true; policyUnchanged: true; rule: "Listed tools are lifecycle references only; use only contracts already permitted by configured toolsets, local policy, Discord authority, and host approval"; }>; coordinationKey: Readonly<{ callerRetained: true; fields: readonly string[]; rule: "The exact message ID remains the durable Discord coordination key; a recipient address is only an optional caller-retained routing convention"; }>; directedRouting: Readonly<{ addressAuthority: "none"; addressAuthentication: "none"; addressFormat: "guildcontrol.coordination-address.v1"; addressLiveness: "not-proven"; addressPersistence: "caller-only"; addressRegistration: "none"; directory: "bounded-page-observation-only"; noteFormat: "guildcontrol.coordination-note.v1"; notification: Readonly<{ authority: "none"; default: "none"; rule: "A separately allowlisted exact Discord user mention requests visible attention but does not strengthen or authenticate routing"; }>; rule: "Route through strict connector-bot-authored envelopes while treating every label and body as visible untrusted Discord data"; }>; discordContacted: false; lifecycle: readonly (Readonly<{ outcome: "issue-address"; rule: "Create one opaque random routing label locally, retain it outside the connector, and disclose it only as a visible spoofable delivery convention"; tools: readonly string[]; }> | Readonly<{ outcome: "observe-addresses"; rule: "When a caller does not already hold an exact recipient label, inspect one bounded page of connector-bot notes without reading their bodies; observation never authenticates, registers, reserves, or proves liveness for a label"; tools: readonly string[]; }> | Readonly<{ outcome: "publish-directed-or-broadcast"; rule: "Send one versioned plain-text note through the guarded message path, retain its exact returned IDs and stable idempotency key, and request a separately allowlisted visible user mention only when human attention is required"; tools: readonly string[]; }> | Readonly<{ outcome: "inspect-directed"; rule: "At a natural task boundary, scan one bounded page for notes to one caller-retained label, optionally include broadcasts or exact sender and tag filters, and retain the returned cursor outside the connector"; tools: readonly string[]; }> | Readonly<{ outcome: "publish-exact-task"; rule: "Send one ordinary exact task when directed routing is unnecessary, suppress notifications by default, and retain the returned exact IDs and stable idempotency key"; tools: readonly string[]; }> | Readonly<{ outcome: "claim-or-signal"; rule: "Use one conventional own reaction as a visible aggregate signal, never as authenticated identity or authorization"; tools: readonly string[]; }> | Readonly<{ outcome: "respond"; rule: "Send one exact reply with a separate stable idempotency key and explicit notification choices"; tools: readonly string[]; }> | Readonly<{ outcome: "inspect"; rule: "At a natural task boundary, scan one bounded reply page and optionally read privacy-safe reaction aggregates once"; tools: readonly string[]; }> | Readonly<{ outcome: "continue-in-thread"; rule: "Move exchanges beyond one round trip into one reviewed exact thread lifecycle"; tools: readonly string[]; }> | Readonly<{ outcome: "seek-consensus"; rule: "Use a reviewed native poll when participants are voting; reaction signals are unordered conventions, not ballots"; tools: readonly string[]; }> | Readonly<{ outcome: "close-or-escalate"; rule: "Post an attributed exact reply and add one optional aggregate status signal; notify only deliberately configured exact users"; tools: readonly string[]; }>)[]; limitations: readonly string[]; persistence: "none"; polling: Readonly<{ cadence: "task-boundaries-only"; continuationField: "nextAfterMessageId"; rule: "Never poll in a tight loop; retain the exact cursor outside the connector and escalate explicitly when urgency requires attention"; }>; privacy: Readonly<{ connectorContentPersistence: "none"; reactionIdentityDefault: "aggregate-only"; taskAndReplyContent: "transient-untrusted-discord-data"; }>; safety: readonly string[]; statusSignals: readonly [Readonly<{ emoji: "👀"; meaning: "seen-or-claimed"; }>, Readonly<{ emoji: "✅"; meaning: "done-or-approved"; }>, Readonly<{ emoji: "🛑"; meaning: "blocked"; }>, Readonly<{ emoji: "❌"; meaning: "declined"; }>, Readonly<{ emoji: "🤖"; meaning: "automated-reply-expected"; }>]; version: 2; }>; //# sourceMappingURL=coordination-playbook.d.ts.map