import type { A2aAgentCard, A2aAgentRecord, Agent, AgentListQuery, AgentPresenceInfo, Channel, ChannelMemberInfo, CreateObserverTokenRequest, CreateAgentRequest, CreateAgentResponse, UpdateAgentRequest, UpdateObserverTokenRequest, UpdateWorkspaceRequest, Workspace, ObserverToken, CreateWorkspaceResponse, WorkspaceLookup, SystemPrompt, SetSystemPromptRequest, CreateWebhookRequest, CreateWebhookResponse, Webhook, WebhookTriggerRequest, WebhookTriggerResponse, CreateSubscriptionRequest, CreateSubscriptionResponse, EventSubscription, ActivityItem, DmMessage, DmReceivedEvent, WorkspaceDmConversation, TokenRotateResponse, MessageListQuery, MessageCreatedEvent, MessageReadEvent, MessageReactedEvent, MessageUpdatedEvent, MessageWithMeta, SessionMessagesResult, ReactionGroup, SpawnAgentRequest, SpawnAgentResponse, ReleaseAgentRequest, ReleaseAgentResponse, RegisterA2aOptions, RegisterA2aResponse, RemoveA2aAgentResponse, DirectoryAgent, DirectorySearchResult, ImportSkillsRequest, PublishToDirectoryRequest, RouteResult, RoutingConfig, SearchDirectoryQuery, UpdateRoutingConfigRequest, ListDirectoryQuery, UpdateDirectoryAgentRequest, DirectoryRating, RateDirectoryAgentRequest, RouteFeedbackRequest, RouteFeedbackResult, SkillSearchQuery, SkillSearchResult, ActionDefinition, RegisterActionRequest, BindAgentToNodeRequest, CreateNodeRequest, CreateNodeResponse, NodeAgentBinding, NodeListQuery, NodeRosterEntry, Trigger, CreateTriggerRequest, UpdateTriggerRequest, SessionEvent, EmitSessionEventRequest, ListSessionEventsQuery, CertificationRun, SubmitCertificationRequest, MonitorCertificationRequest, ConsoleMessageLog, ConsoleMessagesQuery, ConsoleOverview, ConsoleAgentStat, ConsoleAgentStatsQuery, ConsoleWindowQuery, ConsoleCostStats, ThreadReplyEvent, WsClientEvent, AgentStatusActiveEvent, AgentStatusChangedEvent, AgentStatusOfflineEvent, ChannelCreatedEvent, ChannelUpdatedEvent, ChannelArchivedEvent, MemberJoinedEvent, MemberLeftEvent, ChannelMutedEvent, ChannelUnmutedEvent, FileUploadedEvent, WebhookReceivedEvent, ActionInvokedEvent, ActionCompletedEvent, ActionDeniedEvent, ActionFailedEvent, DeliveryAcceptedEvent, DeliveryDeliveredEvent, DeliveryDeferredEvent, DeliveryFailedEvent, GroupDmReceivedEvent } from './types.js'; import { AgentClient, type AgentClientOptions } from './agent.js'; import { type RetryPolicyInput } from './client.js'; import { type WsClientOptions } from './ws.js'; import { type AgentIdentityRecoveryResponse, type AgentIdentityRevocationResponse, type EnrollRecoveryCredentialInput, type RecoverAgentInput, type RegisterAgentInput, type RegisterOrRotateInput, type ResolvedIdentity, type RevokeAgentTokenInput, type TakeOverAgentInput } from './identity.js'; import { type WorkspaceProvenanceOptions } from './workspace-provenance.js'; export interface RelayCastOptions { /** * Workspace admin key (`rk_live_*`) for administration or observer token * (`ot_live_*`) for read-only REST and workspace realtime observation. */ apiKey: string; baseUrl?: string; retryPolicy?: RetryPolicyInput; ws?: Omit; /** * Optional User-Agent-style identifier for the originActor driving requests * (e.g. `'claude-code/2.3 (model=opus-4.8)'`, `'codex'`, `'human'`). Sent as * the `X-Relaycast-Origin-Actor` header on every request so server-side telemetry * can attribute traffic to a originActor. */ originActor?: string; /** * Optional Agent Relay distinct telemetry id. Sent as * `X-Agent-Relay-Distinct-Id` on HTTP requests so Relaycast telemetry can be * joined to Agent Relay CLI telemetry without sending user-identifying data. */ agentRelayDistinctId?: string; /** * Optional Agent Relay Cloud user id of the signed-in operator, sent as * `X-Agent-Relay-User-Id`. Doubles as the distinct id when * `agentRelayDistinctId` is unset. */ agentRelayUserId?: string; /** Optional hashed machine id, sent as `X-Agent-Relay-Machine-Id`. */ agentRelayMachineId?: string; /** Optional Agent Relay Cloud organization id, for group analytics. */ agentRelayOrgId?: string; /** Optional organization slug, for readable analytics breakdowns. */ agentRelayOrgSlug?: string; } /** Identity fields accepted by the unauthenticated workspace bootstrap calls. */ export interface WorkspaceIdentityOptions { agentRelayDistinctId?: string; agentRelayMachineId?: string; agentRelayUserId?: string; agentRelayOrgId?: string; agentRelayOrgSlug?: string; } export interface WorkspaceBootstrapOptions extends WorkspaceIdentityOptions { apiKey?: string; baseUrl?: string; /** Explicit lifetime for a throwaway workspace; omit for persistence. */ expiresInSeconds?: number; /** Creation context recorded once for hosted usage attribution. */ provenance?: WorkspaceProvenanceOptions; } export interface WorkspaceLookupOptions extends WorkspaceIdentityOptions { baseUrl?: string; } export interface AgentReconnectOptions { apiToken: string; agent?: AgentClientOptions; } export type EnsureWorkspaceResponse = { existed: boolean; name: string; } & CreateWorkspaceResponse; interface ChannelListOptions { includeArchived?: boolean; } type RegisterTypedIdentityInput = Omit; export declare class RelayCast { private client; private ws; private identityHint; private workspaceIdHint; constructor(options: RelayCastOptions); connect(): void; disconnect(): void; private onEvent; on: { messageCreated: (handler: (e: MessageCreatedEvent) => void) => (() => void); messageUpdated: (handler: (e: MessageUpdatedEvent) => void) => (() => void); threadReply: (handler: (e: ThreadReplyEvent) => void) => (() => void); messageRead: (handler: (e: MessageReadEvent) => void) => (() => void); messageReacted: (handler: (e: MessageReactedEvent) => void) => (() => void); dmReceived: (handler: (e: DmReceivedEvent) => void) => (() => void); groupDmReceived: (handler: (e: GroupDmReceivedEvent) => void) => (() => void); agentStatusChanged: (handler: (e: AgentStatusChangedEvent) => void) => (() => void); agentActive: (handler: (e: AgentStatusActiveEvent) => void) => (() => void); agentOffline: (handler: (e: AgentStatusOfflineEvent) => void) => (() => void); channelCreated: (handler: (e: ChannelCreatedEvent) => void) => (() => void); channelUpdated: (handler: (e: ChannelUpdatedEvent) => void) => (() => void); channelArchived: (handler: (e: ChannelArchivedEvent) => void) => (() => void); memberJoined: (handler: (e: MemberJoinedEvent) => void) => (() => void); memberLeft: (handler: (e: MemberLeftEvent) => void) => (() => void); channelMuted: (handler: (e: ChannelMutedEvent) => void) => (() => void); channelUnmuted: (handler: (e: ChannelUnmutedEvent) => void) => (() => void); fileUploaded: (handler: (e: FileUploadedEvent) => void) => (() => void); webhookReceived: (handler: (e: WebhookReceivedEvent) => void) => (() => void); actionInvoked: (handler: (e: ActionInvokedEvent) => void) => (() => void); actionCompleted: (handler: (e: ActionCompletedEvent) => void) => (() => void); actionFailed: (handler: (e: ActionFailedEvent) => void) => (() => void); actionDenied: (handler: (e: ActionDeniedEvent) => void) => (() => void); deliveryAccepted: (handler: (e: DeliveryAcceptedEvent) => void) => (() => void); deliveryDelivered: (handler: (e: DeliveryDeliveredEvent) => void) => (() => void); deliveryDeferred: (handler: (e: DeliveryDeferredEvent) => void) => (() => void); deliveryFailed: (handler: (e: DeliveryFailedEvent) => void) => (() => void); connected: (handler: () => void) => (() => void); disconnected: (handler: () => void) => (() => void); error: (handler: () => void) => (() => void); reconnecting: (handler: (attempt: number) => void) => (() => void); permanentlyDisconnected: (handler: (attempt: number) => void) => (() => void); resynced: (handler: (info: { replayed: number; gapDetected: boolean; }) => void) => (() => void); any: (handler: (e: WsClientEvent) => void) => (() => void); }; static createWorkspace(name: string, options?: string | WorkspaceBootstrapOptions): Promise; private static createWorkspaceWithStatus; static lookupWorkspace(name: string, options?: string | WorkspaceLookupOptions): Promise; static ensureWorkspace(name: string, options?: string | WorkspaceBootstrapOptions): Promise; private rememberIdentity; private resolveWorkspaceId; private resolveIdentityInternal; private registerTypedIdentity; registerAgent(data: RegisterAgentInput): Promise; registerOrRotate(data: RegisterOrRotateInput): Promise; resolveIdentity(): Promise; reconnect(data: AgentReconnectOptions, options?: AgentClientOptions): Promise; agent(data: RegisterTypedIdentityInput): Promise; human(data: RegisterTypedIdentityInput): Promise; system(data: RegisterTypedIdentityInput): Promise; registerA2a(options: RegisterA2aOptions): Promise; listA2aAgents(): Promise; removeA2aAgent(name: string): Promise; getA2aAgentCard(name: string): Promise; route(skill: string, message?: string): Promise; searchDirectory(query: SearchDirectoryQuery): Promise; publishToDirectory(data: PublishToDirectoryRequest): Promise; importSkills(data: ImportSkillsRequest): Promise; searchSkills(query?: SkillSearchQuery): Promise; routeFeedback(data: RouteFeedbackRequest): Promise; listDirectory(query?: ListDirectoryQuery): Promise; getDirectoryAgent(slug: string): Promise; updateDirectoryAgent(slug: string, data: UpdateDirectoryAgentRequest): Promise; deleteDirectoryAgent(slug: string): Promise; listDirectoryRatings(slug: string): Promise; rateDirectoryAgent(slug: string, data: RateDirectoryAgentRequest): Promise; getRoutingConfig(): Promise; updateRoutingConfig(data: UpdateRoutingConfigRequest): Promise; workspace: { info: () => Promise; reconnect: (data: AgentReconnectOptions, options?: AgentClientOptions) => Promise; update: (data: UpdateWorkspaceRequest) => Promise; delete: (workspaceId?: string) => Promise; }; observerTokens: { create: (data: CreateObserverTokenRequest) => Promise; list: () => Promise; get: (id: string) => Promise; update: (id: string, data: UpdateObserverTokenRequest) => Promise; rotate: (id: string) => Promise; revoke: (id: string) => Promise; }; systemPrompt: { get: () => Promise; set: (data: SetSystemPromptRequest) => Promise; }; channels: { list: (opts?: ChannelListOptions) => Promise; get: (name: string) => Promise; }; messages: { list: (channel: string, opts?: MessageListQuery) => Promise; get: (id: string) => Promise; thread: (id: string, opts?: MessageListQuery) => Promise<{ parent: MessageWithMeta; replies: MessageWithMeta[]; }>; reactions: (id: string) => Promise; bySessionRef: (sessionRef: string, opts?: { limit?: number; after?: string; }) => Promise; }; agents: { register: (data: CreateAgentRequest) => Promise; list: (query?: AgentListQuery) => Promise; get: (name: string) => Promise; me: (apiToken?: string) => Promise; rotateToken: (name: string, agentToken: string) => Promise; recover: ({ name, ...data }: RecoverAgentInput) => Promise; takeOver: ({ name, ...data }: TakeOverAgentInput) => Promise; revokeToken: ({ name, ...data }: RevokeAgentTokenInput) => Promise; enrollRecoveryCredential: (data: EnrollRecoveryCredentialInput, agentToken: string) => Promise<{ agentId: string; enrolled: boolean; }>; update: (name: string, data: UpdateAgentRequest) => Promise; delete: (name: string) => Promise; presence: () => Promise; registerOrGet: (data: CreateAgentRequest) => Promise; registerAgent: (data: RegisterAgentInput) => Promise; registerOrRotate: (data: RegisterOrRotateInput) => Promise; resolveIdentity: () => Promise; spawn: (data: SpawnAgentRequest) => Promise; release: (data: ReleaseAgentRequest) => Promise; events: { emit: (name: string, data: EmitSessionEventRequest) => Promise; list: (name: string, query?: ListSessionEventsQuery) => Promise; }; }; webhooks: { create: (data: CreateWebhookRequest) => Promise; createInbound: (data: CreateWebhookRequest) => Promise; list: () => Promise; delete: (id: string) => Promise; trigger: (webhookId: string, data: WebhookTriggerRequest, token: string) => Promise; }; subscriptions: { create: (data: CreateSubscriptionRequest) => Promise; list: () => Promise; get: (id: string) => Promise; delete: (id: string) => Promise; }; actions: { register: (data: RegisterActionRequest) => Promise; list: () => Promise; get: (name: string) => Promise; delete: (name: string) => Promise; }; nodes: { create: (data: CreateNodeRequest) => Promise; list: (query?: NodeListQuery) => Promise; get: (name: string) => Promise; listAgents: (name: string) => Promise; bindAgent: (name: string, data: BindAgentToNodeRequest) => Promise; unbindAgent: (name: string, agentName: string) => Promise; }; triggers: { create: (data: CreateTriggerRequest) => Promise; list: () => Promise; get: (id: string) => Promise; update: (id: string, data: UpdateTriggerRequest) => Promise; delete: (id: string) => Promise; }; certify: { submit: (data: SubmitCertificationRequest) => Promise; get: (id: string) => Promise; /** Public badge SVG URL for a certification run (served without an auth header). */ badgeUrl: (id: string) => string; monitor: (data: MonitorCertificationRequest) => Promise; }; console: { messages: (query?: ConsoleMessagesQuery) => Promise; stats: (query?: ConsoleWindowQuery) => Promise; agents: (query?: ConsoleAgentStatsQuery) => Promise; costs: (query?: ConsoleWindowQuery) => Promise; }; activity: (limit?: number) => Promise; allDmConversations: () => Promise; dmMessages: (conversationId: string, opts?: { limit?: number; before?: string; after?: string; }) => Promise; as(agentToken: string, options?: AgentClientOptions): AgentClient; } export {}; //# sourceMappingURL=relay.d.ts.map