import { i as OpenClawConfig } from "./types.openclaw-CpnoYlBx.js"; import { c as SessionBindingRecord, n as BindingTargetKind } from "./session-binding.types-BbT2v6Ty.js"; import { l as unregisterSessionBindingAdapter, s as registerSessionBindingAdapter, t as SessionBindingAdapter } from "./session-binding-service-FRcWK28J.js"; import { f as resolveThreadBindingConversationIdFromBindingId, l as resolveThreadBindingMaxAgeMsForChannel, s as resolveThreadBindingIdleTimeoutMsForChannel } from "./thread-bindings-policy-C18ykn4h.js"; import { i as resolveThreadBindingFarewellText, n as resolveThreadBindingLifecycle } from "./thread-binding-lifecycle-BboAexP6.js"; //#region src/infra/outbound/account-scoped-conversation-bindings.d.ts /** In-memory binding record scoped to one channel account and conversation id. */ type AccountScopedConversationBindingRecord = { accountId: string; conversationId: string; targetKind: TKind; targetSessionKey: string; agentId?: string; label?: string; boundBy?: string; boundAt: number; lastActivityAt: number; }; /** Account-local binding manager exposed by channel-specific conversation stores. */ type AccountScopedConversationBindingManager = { accountId: string; getByConversationId: (conversationId: string) => AccountScopedConversationBindingRecord | undefined; listBySessionKey: (targetSessionKey: string) => AccountScopedConversationBindingRecord[]; bindConversation: (params: { conversationId: string; targetKind: BindingTargetKind; targetSessionKey: string; metadata?: Record; }) => AccountScopedConversationBindingRecord | null; touchConversation: (conversationId: string, at?: number) => AccountScopedConversationBindingRecord | null; unbindConversation: (conversationId: string) => AccountScopedConversationBindingRecord | null; unbindBySessionKey: (targetSessionKey: string) => AccountScopedConversationBindingRecord[]; stop: () => void; }; /** Creates a channel/account binding manager and registers it as a session-binding adapter. */ declare function createAccountScopedConversationBindingManager(params: { channel: string; cfg: OpenClawConfig; stateKey: symbol; accountId?: string | null; toStoredTargetKind: (raw: BindingTargetKind) => TKind; toSessionBindingTargetKind: (raw: TKind) => BindingTargetKind; }): AccountScopedConversationBindingManager; /** Stops registered managers and clears account-scoped binding state for one test key. */ declare function resetAccountScopedConversationBindingsForTests(params: { stateKey: symbol; }): void; //#endregion export { type AccountScopedConversationBindingManager, type AccountScopedConversationBindingRecord, type BindingTargetKind, type SessionBindingAdapter, type SessionBindingRecord, createAccountScopedConversationBindingManager, registerSessionBindingAdapter, resetAccountScopedConversationBindingsForTests, resolveThreadBindingConversationIdFromBindingId, resolveThreadBindingFarewellText, resolveThreadBindingIdleTimeoutMsForChannel, resolveThreadBindingLifecycle, resolveThreadBindingMaxAgeMsForChannel, unregisterSessionBindingAdapter };