import type { PermissionMode } from '../../core/models/index.js'; import type { ImageAttachmentReference } from '../../shared/types/image-attachments.js'; import type { StreamCallback } from '../../shared/types/provider.js'; import { type SessionContext } from '../interactive/aiCaller.js'; import type { FacetLookupConfig } from '../catalog/catalogFacets.js'; import type { ExecCodexSkillInheritance, ResolvedExecConfig, ResolvedExecSessionConfig } from './types.js'; interface AskExecAssistantOptions { readonly permissionMode?: PermissionMode; readonly imageAttachments?: ImageAttachmentReference[]; /** Lets the caller stop a turn that is still running. */ readonly abortSignal?: AbortSignal; /** * `silent` when the caller draws its own frames: a stray write from the * stream display would land in the middle of them. */ readonly outputMode?: 'terminal' | 'silent'; /** Where the answer streams to when the caller renders it itself. */ readonly onStream?: StreamCallback; /** Receives what a terminal caller would have printed next to the answer. */ readonly onNotice?: (message: string) => void; } export interface ExecSessionContext extends SessionContext { readonly facetLookupConfig: FacetLookupConfig; readonly codexSkillInheritance: ExecCodexSkillInheritance; } export declare function createExecSessionContext(cwd: string, config: ResolvedExecConfig, sessionId?: string, codexSkillInheritance?: ExecCodexSkillInheritance): ExecSessionContext; export declare function shouldKeepExecSession(previous: ResolvedExecSessionConfig, next: ResolvedExecSessionConfig): boolean; export declare function askExecAssistant(cwd: string, ctx: SessionContext, prompt: string, systemPrompt: string, options?: AskExecAssistantOptions): Promise<{ content: string; sessionId: string | undefined; }>; export {}; //# sourceMappingURL=assistantSession.d.ts.map