import type { Session } from './types.js'; export type AgentSessionField = keyof Pick; export interface AgentSessionPersistBinding { field: AgentSessionField; persist: (platform: string, channelId: string, threadId: string, id: string) => Promise; logLabel: string; } export type TurnSessionStrategy = { kind: 'claude-preallocate'; } | { kind: 'copilot-preallocate'; field: 'copilotSessionId'; } | { kind: 'resume-if-present'; field: AgentSessionField; }; /** Agents that report a minted session id via opts.onAgentSessionId. */ export declare const AGENT_SESSION_PERSIST: Record; /** * How cli `onAgentResolved` and `prepareSubtaskAgentCallOptions` wire * resume / preallocate for each agent. Same table for both paths. */ export declare const TURN_AGENT_SESSION: Record; export type SessionStickyFields = Pick; export interface BoundTurnSession { agentSessionId?: string; agentSessionResume?: boolean; } /** * Bind resume / preallocate session ids for one agent turn. * * Shared by cli `onAgentResolved` and router subtask prep so both stay * table-driven. When `ensureSession` is true (IM inbound path), creates * the agim Session row before writing any agent-native id. */ export declare function bindTurnAgentSession(agentName: string, sticky: SessionStickyFields | undefined | null, ids: { platform: string; channelId: string; threadId: string; }, opts?: { ensureSession?: boolean; }): Promise; //# sourceMappingURL=agent-session-bindings.d.ts.map