import { type SessionStorage } from "../session/session-storage.js"; import { type PersistedSessionInit } from "../session/session-manager.js"; import type { ModelRegistry } from "../config/model-registry.js"; import type { TaskParams } from "@oh-my-pi/pi-tui/tools/task"; import type { ToolSession } from "../tools/index.js"; import type { AgentDefinition } from "./types.js"; export interface ResolvedSeanceSource { file: string; id: string; /** Active saved model-role selector, then the saved default fallback. */ modelSelectors: string[]; } export interface PreparedSeanceSession { fork: { sourceFile: string; }; promptSuffix: (resolvedModel?: string) => string; } export interface RestoredSeanceSession { cwd: string; modelPattern: string; toolNames: string[]; } export declare function isBundledSeance(agent: AgentDefinition): boolean; /** * Resolve an explicit session path or an unambiguous stored session id without opening its writer. * Ids search the caller's artifact tree, then the current project; `includeGlobal` (user-typed * `/seance` ids) also searches every project's sessions. */ export declare function resolveSeanceSource(selector: string, options: { cwd: string; sessionDirHint?: string; artifactsDirHint?: string; includeGlobal?: boolean; storage?: SessionStorage; }): Promise; export declare const seanceTaskSchemaFields: { "sourceSession?": import("@oh-my-pi/omptype").FluentType; "model?": import("@oh-my-pi/omptype").FluentType; }; export declare const seanceTaskGuidance: string; export declare function validateSeanceParams(context: { params: TaskParams; batchEnabled: boolean; defaultAgent: string; seanceAdvertised: boolean; }): string | undefined; export declare function prepareSeance(context: { session: ToolSession; invocationKind: "task" | "eval"; agent: AgentDefinition; sourceSession?: string; model?: string | string[]; planMode: boolean; isolationRequested: boolean; hasCustomTools: boolean; }): Promise<{ modelPatterns: string[]; session: PreparedSeanceSession; }>; export declare function restoreSeanceSession(context: { init: PersistedSessionInit; cwd: string; modelRegistry: ModelRegistry; }): Promise;