import { type ModelInfo } from "./model-info.ts"; type SubagentExecutionContext = "fresh" | "fork"; interface BranchSessionEntry { type: string; id?: string; parentId?: string | null; timestamp?: string; message?: { role?: string; content?: unknown; provider?: string; api?: string; model?: string; }; thinkingLevel?: string; } interface BranchSessionManager { createBranchedSession(leafId: string): string | undefined; getHeader?: () => BranchSessionEntry | null; getEntries?: () => BranchSessionEntry[]; } interface ForkableSessionManager { getSessionFile(): string | undefined; getLeafId(): string | null; getSessionDir?(): string; openSession?: (path: string, sessionDir?: string) => BranchSessionManager; } interface ForkContextResolverOptions { openSession?: (path: string, sessionDir?: string) => BranchSessionManager; /** Decide per child index whether a sanitized transcript must also disable the child's * thinking. Defaults to true (the pre-existing conservative behavior) when omitted. */ forceThinkingOffForIndex?: (index: number) => boolean; } interface ForkContextResolver { sessionFileForIndex(index?: number): string | undefined; thinkingOverrideForIndex(index?: number): "off" | undefined; } export declare function resolveSubagentContext(value: unknown): SubagentExecutionContext; /** Decide whether a resolved child model uses Anthropic's provider or message API, which * requires the sanitized fork to disable thinking. Unknown models stay conservative. */ export declare function forkedChildRequiresThinkingOff(model: string | undefined, availableModels?: ModelInfo[], preferredProvider?: string): boolean; export declare function createForkContextResolver(sessionManager: ForkableSessionManager, requestedContext: unknown, options?: ForkContextResolverOptions): ForkContextResolver; export {}; //# sourceMappingURL=fork-context.d.ts.map