import { z } from 'zod'; export declare const TIERS: readonly ['session', 'subagent', 'org-role', 'external']; export type Tier = (typeof TIERS)[number]; export declare const PRESENCE: readonly ['active', 'stale', 'gone']; export type Presence = (typeof PRESENCE)[number]; export declare const WhoFilterSchema: z.ZodObject<{ project: z.ZodOptional; tier: z.ZodOptional>; status: z.ZodOptional>; capability: z.ZodOptional; tag: z.ZodOptional; parent: z.ZodOptional; includeGone: z.ZodDefault; }, z.core.$strip>; export type WhoFilter = z.infer; export declare const MESSAGE_KINDS: readonly ['say', 'ask', 'reply']; export type MessageKind = (typeof MESSAGE_KINDS)[number]; /** Longest message body, in characters. */ export declare const MAX_BODY = 4096; export declare const RequestSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{ tier: z.ZodEnum<{ external: "external"; "org-role": "org-role"; session: "session"; subagent: "subagent"; }>; runtime: z.ZodString; pid: z.ZodNumber; project: z.ZodString; projectPath: z.ZodString; sessionId: z.ZodString; agentId: z.ZodOptional; alias: z.ZodOptional; task: z.ZodOptional>>; capabilities: z.ZodDefault>; tags: z.ZodDefault>; parent: z.ZodOptional; key: z.ZodOptional; nonce: z.ZodOptional; op: z.ZodLiteral<"hello">; id: z.ZodString; }, z.core.$strip>, z.ZodObject<{ op: z.ZodLiteral<"heartbeat">; id: z.ZodString; addr: z.ZodString; key: z.ZodString; task: z.ZodOptional>>; }, z.core.$strip>, z.ZodObject<{ op: z.ZodLiteral<"bye">; id: z.ZodString; addr: z.ZodString; key: z.ZodString; }, z.core.$strip>, z.ZodObject<{ project: z.ZodOptional; tier: z.ZodOptional>; status: z.ZodOptional>; capability: z.ZodOptional; tag: z.ZodOptional; parent: z.ZodOptional; includeGone: z.ZodDefault; op: z.ZodLiteral<"who">; id: z.ZodString; }, z.core.$strip>, z.ZodObject<{ op: z.ZodLiteral<"send">; id: z.ZodString; addr: z.ZodString; key: z.ZodString; to: z.ZodString; kind: z.ZodDefault>; body: z.ZodString; replyTo: z.ZodOptional; }, z.core.$strip>, z.ZodObject<{ op: z.ZodLiteral<"inbox">; id: z.ZodString; addr: z.ZodString; key: z.ZodString; limit: z.ZodDefault; peek: z.ZodDefault; }, z.core.$strip>], "op">; export type Request = z.infer; export interface HelloFields { tier: Tier; runtime: string; pid: number; project: string; projectPath: string; sessionId: string; agentId?: string; alias?: string; task?: string; capabilities: string[]; tags: string[]; parent?: string; } export interface AgentInfo extends HelloFields { addr: string; status: Presence; lastSeen: number; joinedAt: number; } export interface MeshMessage { seq: number; from: string; fromAlias?: string; kind: MessageKind; body: string; replyTo?: number; ts: number; } export declare function buildAddr(host: string, project: string, sessionId: string, agentId?: string): string; export declare function parseAddr(addr: string): { host: string; project: string; sessionId: string; agentId?: string; } | null; //# sourceMappingURL=protocol.d.ts.map