import type { AgentDefinition, AgentSlotConfig, AgentSlotId } from '../../core/types/thread-types.js'; /** Check if a thread is using the default single-agent template */ export declare function isDefaultThread(threadId: string): boolean; /** Check if a thread is ad-hoc (no template) */ export declare function isAdHocThread(threadId: string): boolean; /** Get the session key for a specific agent slot in a thread */ export declare function getSessionKey(threadId: string, slotId: AgentSlotId): string; /** Parse a transition endpoint string — either `"agent"` or `"agent:stage"` — into its components. * When the stage suffix is absent, resolve to the agent's `entryStage` (or the first declared * stage, or null for agents with no `stages` map). The agent itself need not be loaded to parse; * `getStageEntry` on the returned shape handles unknown agents gracefully. */ export declare function parseTarget(endpoint: string): { agent: string; stage: string | null; }; /** Resolve the stage name that should actually run for an agent given an explicit stage or null. * Returns null for single-stage agents (no `stages` map). Falls back to entryStage, then to * the first declared stage name. */ export declare function resolveStageName(agentDef: AgentDefinition | AgentSlotConfig | null, explicit: string | null): string | null;