//#region src/plugin-sdk/inbound-envelope.d.ts type RouteLike = { agentId: string; sessionKey: string; }; type RoutePeerLike = { kind: "direct" | "group" | "channel"; id: string | number; }; type InboundEnvelopeFormatParams = { channel: string; from: string; timestamp?: number; previousTimestamp?: number; envelope: TEnvelope; body: string; }; type InboundRouteResolveParams = { cfg: TConfig; channel: string; accountId: string; peer: TPeer; }; /** Create an envelope formatter bound to one resolved route and session store. */ declare function createInboundEnvelopeBuilder(params: { cfg: TConfig; route: RouteLike; sessionStore?: string; resolveStorePath: (store: string | undefined, opts: { agentId: string; }) => string; readSessionUpdatedAt: (params: { storePath: string; sessionKey: string; }) => number | undefined; resolveEnvelopeFormatOptions: (cfg: TConfig) => TEnvelope; formatAgentEnvelope: (params: InboundEnvelopeFormatParams) => string; }): (input: { channel: string; from: string; body: string; timestamp?: number; }) => { storePath: string; body: string; }; /** Resolve a route first, then return both the route and a formatter for future inbound messages. */ declare function resolveInboundRouteEnvelopeBuilder(params: { cfg: TConfig; channel: string; accountId: string; peer: TPeer; resolveAgentRoute: (params: InboundRouteResolveParams) => TRoute; sessionStore?: string; resolveStorePath: (store: string | undefined, opts: { agentId: string; }) => string; readSessionUpdatedAt: (params: { storePath: string; sessionKey: string; }) => number | undefined; resolveEnvelopeFormatOptions: (cfg: TConfig) => TEnvelope; formatAgentEnvelope: (params: InboundEnvelopeFormatParams) => string; }): { route: TRoute; buildEnvelope: ReturnType>; }; type InboundRouteEnvelopeRuntime = { routing: { resolveAgentRoute: (params: InboundRouteResolveParams) => TRoute; }; session: { resolveStorePath: (store: string | undefined, opts: { agentId: string; }) => string; readSessionUpdatedAt: (params: { storePath: string; sessionKey: string; }) => number | undefined; }; reply: { resolveEnvelopeFormatOptions: (cfg: TConfig) => TEnvelope; formatAgentEnvelope: (params: InboundEnvelopeFormatParams) => string; }; }; /** Runtime-driven variant of inbound envelope resolution for plugins that already expose grouped helpers. */ declare function resolveInboundRouteEnvelopeBuilderWithRuntime(params: { cfg: TConfig; channel: string; accountId: string; peer: TPeer; runtime: InboundRouteEnvelopeRuntime; sessionStore?: string; }): { route: TRoute; buildEnvelope: ReturnType>; }; //#endregion export { createInboundEnvelopeBuilder, resolveInboundRouteEnvelopeBuilder, resolveInboundRouteEnvelopeBuilderWithRuntime };