import type { AgentTool } from "@mariozechner/pi-agent-core"; import type { PipelineRunner } from "../pipeline/runner.js"; import { type PlayGraphDB } from "../play/play-db-factory.js"; import { type PlayOpeningSeedResult, type PlayReplayResult, type PlayStepResult, type PlayVariantRestoreResult } from "../play/play-runner.js"; import type { AgentContext } from "../agents/base.js"; import { type ActionPayload } from "../interaction/action-envelope.js"; import type { ActivatedSkillGuidance } from "./skill-tool.js"; declare const ProposeActionParams: import("@sinclair/typebox").TObject<{ action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"create_book">, import("@sinclair/typebox").TLiteral<"short_run">, import("@sinclair/typebox").TLiteral<"play_start">, import("@sinclair/typebox").TLiteral<"generate_cover">, import("@sinclair/typebox").TLiteral<"fanfic_init">, import("@sinclair/typebox").TLiteral<"continuation_import">, import("@sinclair/typebox").TLiteral<"spinoff_create">, import("@sinclair/typebox").TLiteral<"style_imitation">, import("@sinclair/typebox").TLiteral<"script_create">, import("@sinclair/typebox").TLiteral<"storyboard_create">, import("@sinclair/typebox").TLiteral<"interactive_film_create">, import("@sinclair/typebox").TLiteral<"translation_create">, import("@sinclair/typebox").TLiteral<"draft_structure">, import("@sinclair/typebox").TLiteral<"connect_choice">, import("@sinclair/typebox").TLiteral<"remove_node">]>; instruction: import("@sinclair/typebox").TString; title: import("@sinclair/typebox").TOptional; summary: import("@sinclair/typebox").TOptional; createBook: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>>; shortRun: import("@sinclair/typebox").TOptional; storyId: import("@sinclair/typebox").TOptional; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; chapters: import("@sinclair/typebox").TOptional; charsPerChapter: import("@sinclair/typebox").TOptional; cover: import("@sinclair/typebox").TOptional; }>>; playStart: import("@sinclair/typebox").TOptional; visualContract: import("@sinclair/typebox").TOptional; mode: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"guided">]>>; initialScene: import("@sinclair/typebox").TString; suggestedActions: import("@sinclair/typebox").TOptional; action: import("@sinclair/typebox").TOptional; text: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; description: import("@sinclair/typebox").TOptional; }>]>>>; }>>; generateCover: import("@sinclair/typebox").TOptional; sellingPoints: import("@sinclair/typebox").TOptional; coverPrompt: import("@sinclair/typebox").TOptional; outputDir: import("@sinclair/typebox").TOptional; }>>; scriptCreate: import("@sinclair/typebox").TOptional; targetFormat: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"screenplay">, import("@sinclair/typebox").TLiteral<"audio_drama">, import("@sinclair/typebox").TLiteral<"interactive_script">, import("@sinclair/typebox").TLiteral<"general_script">]>>; sourceText: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TOptional; requirements: import("@sinclair/typebox").TOptional; episodeCount: import("@sinclair/typebox").TOptional; episodeDuration: import("@sinclair/typebox").TOptional; projectId: import("@sinclair/typebox").TOptional; outDir: import("@sinclair/typebox").TOptional; }>>; storyboardCreate: import("@sinclair/typebox").TOptional; sourceText: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TOptional; requirements: import("@sinclair/typebox").TOptional; visualStyle: import("@sinclair/typebox").TOptional; aspectRatio: import("@sinclair/typebox").TOptional; granularity: import("@sinclair/typebox").TOptional; maxShots: import("@sinclair/typebox").TOptional; projectId: import("@sinclair/typebox").TOptional; outDir: import("@sinclair/typebox").TOptional; }>>; interactiveFilmCreate: import("@sinclair/typebox").TOptional; sourceText: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TOptional; requirements: import("@sinclair/typebox").TOptional; targetAudience: import("@sinclair/typebox").TOptional; episodeCount: import("@sinclair/typebox").TOptional; episodeDuration: import("@sinclair/typebox").TOptional; budget: import("@sinclair/typebox").TOptional; referenceMode: import("@sinclair/typebox").TOptional; projectId: import("@sinclair/typebox").TOptional; outDir: import("@sinclair/typebox").TOptional; }>>; translationCreate: import("@sinclair/typebox").TOptional; segmentMaxChars: import("@sinclair/typebox").TOptional; }>>; fanficCreate: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TOptional; sourceName: import("@sinclair/typebox").TOptional; mode: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"au">, import("@sinclair/typebox").TLiteral<"ooc">, import("@sinclair/typebox").TLiteral<"cp">]>>; genre: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>>; continuationImport: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TString; splitPattern: import("@sinclair/typebox").TOptional; resumeFrom: import("@sinclair/typebox").TOptional; genre: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>>; spinoffCreate: import("@sinclair/typebox").TOptional; genre: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>>; imitationCreate: import("@sinclair/typebox").TOptional; referencePath: import("@sinclair/typebox").TOptional; storyIdea: import("@sinclair/typebox").TString; sourceName: import("@sinclair/typebox").TOptional; genre: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>>; }>; type ProposeActionToolOptions = { readonly sameSession?: boolean; readonly requestedSkillIds?: () => ReadonlyArray; readonly attachmentPaths?: () => ReadonlyArray; }; export declare function createProposeActionTool(language?: "zh" | "en", options?: ProposeActionToolOptions): AgentTool; interface SkillAwareProductionOptions { readonly defaultSkills?: ReadonlyArray; readonly activeSkills?: () => ReadonlyArray; } export declare function createSubAgentTool(pipeline: PipelineRunner, activeBookId: string | null, projectRoot?: string, options?: { readonly actionPayload?: ActionPayload; readonly architectCreateOnly?: boolean; readonly language?: "zh" | "en"; readonly activeSkills?: () => ReadonlyArray; readonly workerSkills?: (agent: string) => ReadonlyArray; }): AgentTool; declare const ResearchWebParams: import("@sinclair/typebox").TObject<{ topic: import("@sinclair/typebox").TString; purpose: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"worldbuilding">, import("@sinclair/typebox").TLiteral<"era">, import("@sinclair/typebox").TLiteral<"profession">, import("@sinclair/typebox").TLiteral<"market">, import("@sinclair/typebox").TLiteral<"fact-check">, import("@sinclair/typebox").TLiteral<"general">]>; depth: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"standard">, import("@sinclair/typebox").TLiteral<"deep">]>>; }>; export declare function createResearchWebTool(projectRoot: string): AgentTool; declare const IngestMaterialParams: import("@sinclair/typebox").TObject<{ sourceKind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"url">, import("@sinclair/typebox").TLiteral<"file">]>; url: import("@sinclair/typebox").TOptional; filePath: import("@sinclair/typebox").TOptional; filename: import("@sinclair/typebox").TOptional; mimeType: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; purpose: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"worldbuilding">, import("@sinclair/typebox").TLiteral<"script">, import("@sinclair/typebox").TLiteral<"storyboard">, import("@sinclair/typebox").TLiteral<"research">, import("@sinclair/typebox").TLiteral<"general">]>>; }>; export declare function createIngestMaterialTool(projectRoot: string): AgentTool; declare const RetrieveMaterialParams: import("@sinclair/typebox").TObject<{ query: import("@sinclair/typebox").TString; purpose: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"worldbuilding">, import("@sinclair/typebox").TLiteral<"script">, import("@sinclair/typebox").TLiteral<"storyboard">, import("@sinclair/typebox").TLiteral<"research">, import("@sinclair/typebox").TLiteral<"general">]>>; limit: import("@sinclair/typebox").TOptional; }>; export declare function createRetrieveMaterialTool(projectRoot: string): AgentTool; declare const ManageBookReferenceParams: import("@sinclair/typebox").TObject<{ action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"list">, import("@sinclair/typebox").TLiteral<"bind">, import("@sinclair/typebox").TLiteral<"unbind">]>; materialId: import("@sinclair/typebox").TOptional; uses: import("@sinclair/typebox").TOptional>; note: import("@sinclair/typebox").TOptional; }>; export declare function createManageBookReferenceTool(projectRoot: string, activeBookId: string): AgentTool; declare const ImportChaptersParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TString; splitPattern: import("@sinclair/typebox").TOptional; resumeFrom: import("@sinclair/typebox").TOptional; importMode: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"series">]>>; }>; export declare function createImportChaptersTool(pipeline: PipelineRunner, activeBookId: string | null, projectRoot: string): AgentTool; declare const FanficCreateParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TString; sourceText: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TOptional; sourceName: import("@sinclair/typebox").TOptional; mode: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"au">, import("@sinclair/typebox").TLiteral<"ooc">, import("@sinclair/typebox").TLiteral<"cp">]>>; genre: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>; export declare function createFanficBookTool(pipeline: PipelineRunner, projectRoot: string, options?: SkillAwareProductionOptions): AgentTool; declare const SpinoffCreateParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TString; parentBookId: import("@sinclair/typebox").TString; direction: import("@sinclair/typebox").TOptional; genre: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>; export declare function createSpinoffBookTool(pipeline: PipelineRunner, projectRoot: string, options?: SkillAwareProductionOptions): AgentTool; declare const ImitationCreateParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TString; referenceText: import("@sinclair/typebox").TOptional; referencePath: import("@sinclair/typebox").TOptional; storyIdea: import("@sinclair/typebox").TString; sourceName: import("@sinclair/typebox").TOptional; genre: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>; export declare function createImitationBookTool(pipeline: PipelineRunner, projectRoot: string, options?: SkillAwareProductionOptions): AgentTool; declare const ContinuationImportParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TString; splitPattern: import("@sinclair/typebox").TOptional; resumeFrom: import("@sinclair/typebox").TOptional; genre: import("@sinclair/typebox").TOptional; platform: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"qidian">, import("@sinclair/typebox").TLiteral<"feilu">, import("@sinclair/typebox").TLiteral<"other">]>>; language: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"en">]>>; targetChapters: import("@sinclair/typebox").TOptional; chapterWordCount: import("@sinclair/typebox").TOptional; }>; export declare function createContinuationImportTool(pipeline: PipelineRunner, activeBookId: string | null, projectRoot: string, options?: SkillAwareProductionOptions): AgentTool; declare const ShortFictionRunParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TOptional; direction: import("@sinclair/typebox").TString; reference: import("@sinclair/typebox").TOptional; storyId: import("@sinclair/typebox").TOptional; chapters: import("@sinclair/typebox").TOptional; charsPerChapter: import("@sinclair/typebox").TOptional; cover: import("@sinclair/typebox").TOptional; coverBaseUrl: import("@sinclair/typebox").TOptional; coverEndpoint: import("@sinclair/typebox").TOptional; coverModel: import("@sinclair/typebox").TOptional; coverSize: import("@sinclair/typebox").TOptional; coverApiKeyEnv: import("@sinclair/typebox").TOptional; }>; export declare function createShortFictionRunTool(pipeline: PipelineRunner, projectRoot: string, options?: { readonly actionPayload?: ActionPayload; readonly language?: "zh" | "en"; } & SkillAwareProductionOptions): AgentTool; declare const TranslationCreateParams: import("@sinclair/typebox").TObject<{ filePath: import("@sinclair/typebox").TString; sourceLanguage: import("@sinclair/typebox").TString; targetLanguage: import("@sinclair/typebox").TString; title: import("@sinclair/typebox").TOptional; segmentMaxChars: import("@sinclair/typebox").TOptional; }>; export declare function createTranslationCreateTool(projectRoot: string, options?: { readonly actionPayload?: ActionPayload; }): AgentTool; declare const ScriptCreateParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TString; instruction: import("@sinclair/typebox").TString; sourceKind: import("@sinclair/typebox").TOptional; targetFormat: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"screenplay">, import("@sinclair/typebox").TLiteral<"audio_drama">, import("@sinclair/typebox").TLiteral<"interactive_script">, import("@sinclair/typebox").TLiteral<"general_script">]>>; sourceText: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TOptional; requirements: import("@sinclair/typebox").TOptional; episodeCount: import("@sinclair/typebox").TOptional; episodeDuration: import("@sinclair/typebox").TOptional; projectId: import("@sinclair/typebox").TOptional; outDir: import("@sinclair/typebox").TOptional; }>; export declare function createScriptCreationTool(pipeline: PipelineRunner, projectRoot: string, options?: { readonly actionPayload?: ActionPayload; readonly language?: "zh" | "en"; } & SkillAwareProductionOptions): AgentTool; declare const StoryboardCreateParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TString; instruction: import("@sinclair/typebox").TString; sourceKind: import("@sinclair/typebox").TOptional; sourceText: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TOptional; requirements: import("@sinclair/typebox").TOptional; visualStyle: import("@sinclair/typebox").TOptional; aspectRatio: import("@sinclair/typebox").TOptional; granularity: import("@sinclair/typebox").TOptional; maxShots: import("@sinclair/typebox").TOptional; projectId: import("@sinclair/typebox").TOptional; outDir: import("@sinclair/typebox").TOptional; }>; export declare function createStoryboardCreationTool(pipeline: PipelineRunner, projectRoot: string, options?: { readonly actionPayload?: ActionPayload; readonly language?: "zh" | "en"; } & SkillAwareProductionOptions): AgentTool; declare const InteractiveFilmCreateParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TString; instruction: import("@sinclair/typebox").TString; sourceKind: import("@sinclair/typebox").TOptional; sourceText: import("@sinclair/typebox").TOptional; sourcePath: import("@sinclair/typebox").TOptional; requirements: import("@sinclair/typebox").TOptional; targetAudience: import("@sinclair/typebox").TOptional; episodeCount: import("@sinclair/typebox").TOptional; episodeDuration: import("@sinclair/typebox").TOptional; budget: import("@sinclair/typebox").TOptional; referenceMode: import("@sinclair/typebox").TOptional; projectId: import("@sinclair/typebox").TOptional; outDir: import("@sinclair/typebox").TOptional; }>; export declare function createInteractiveFilmCreationTool(pipeline: PipelineRunner, projectRoot: string, options?: { readonly actionPayload?: ActionPayload; readonly language?: "zh" | "en"; } & SkillAwareProductionOptions): AgentTool; declare const GenerateCoverParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TString; intro: import("@sinclair/typebox").TOptional; sellingPoints: import("@sinclair/typebox").TOptional; coverPrompt: import("@sinclair/typebox").TOptional; outputDir: import("@sinclair/typebox").TOptional; coverBaseUrl: import("@sinclair/typebox").TOptional; coverEndpoint: import("@sinclair/typebox").TOptional; coverModel: import("@sinclair/typebox").TOptional; coverSize: import("@sinclair/typebox").TOptional; coverApiKeyEnv: import("@sinclair/typebox").TOptional; }>; export declare function createGenerateCoverTool(projectRoot: string, options?: { readonly actionPayload?: ActionPayload; }): AgentTool; declare const PlayStartParams: import("@sinclair/typebox").TObject<{ title: import("@sinclair/typebox").TString; premise: import("@sinclair/typebox").TOptional; worldContract: import("@sinclair/typebox").TOptional; visualContract: import("@sinclair/typebox").TOptional; mode: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"guided">]>>; initialScene: import("@sinclair/typebox").TOptional; suggestedActions: import("@sinclair/typebox").TOptional; action: import("@sinclair/typebox").TOptional; text: import("@sinclair/typebox").TOptional; title: import("@sinclair/typebox").TOptional; description: import("@sinclair/typebox").TOptional; }>]>>>; }>; export interface PlayStartToolOptions extends SkillAwareProductionOptions { readonly actionPayload?: ActionPayload; readonly runnerFactory?: (input: { readonly projectRoot: string; readonly worldId: string; readonly runId: string; readonly ctx: AgentContext; readonly db: PlayGraphDB; }) => { seedOpening(input: { sceneText: string; suggestedActions?: readonly string[]; }): Promise; }; } export declare function createPlayStartTool(pipeline: PipelineRunner | null, projectRoot: string, sessionId: string, playMode?: "open" | "guided", options?: PlayStartToolOptions): AgentTool; declare const PlayStepParams: import("@sinclair/typebox").TObject<{ input: import("@sinclair/typebox").TString; }>; export interface PlayStepToolOptions extends SkillAwareProductionOptions { readonly language?: "zh" | "en"; readonly runnerFactory?: (input: { readonly projectRoot: string; readonly worldId: string; readonly runId: string; readonly ctx: AgentContext; }) => { step(input: string): Promise; }; } declare const PlayReviseParams: import("@sinclair/typebox").TObject<{ action: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"regenerate_last">, import("@sinclair/typebox").TLiteral<"edit_last_input">, import("@sinclair/typebox").TLiteral<"restore_variant">]>; input: import("@sinclair/typebox").TOptional; turn: import("@sinclair/typebox").TOptional; variantId: import("@sinclair/typebox").TOptional; }>; export interface PlayReviseToolOptions extends SkillAwareProductionOptions { readonly language?: "zh" | "en"; readonly runnerFactory?: (input: { readonly projectRoot: string; readonly worldId: string; readonly runId: string; readonly ctx: AgentContext; }) => { regenerateLastTurn(input?: string): Promise; restoreVariant(input: { readonly turn: number; readonly variantId: string; }): Promise; }; } declare const PlayEditParams: import("@sinclair/typebox").TObject<{ worldContract: import("@sinclair/typebox").TOptional; worldContractReplacements: import("@sinclair/typebox").TOptional>>; worldContractAppend: import("@sinclair/typebox").TOptional; visualContract: import("@sinclair/typebox").TOptional; visualContractReplacements: import("@sinclair/typebox").TOptional>>; visualContractAppend: import("@sinclair/typebox").TOptional; premise: import("@sinclair/typebox").TOptional; playerPersona: import("@sinclair/typebox").TOptional; entityUpdates: import("@sinclair/typebox").TOptional; label: import("@sinclair/typebox").TOptional; type: import("@sinclair/typebox").TOptional, import("@sinclair/typebox").TLiteral<"location">, import("@sinclair/typebox").TLiteral<"item">, import("@sinclair/typebox").TLiteral<"evidence">, import("@sinclair/typebox").TLiteral<"clue">, import("@sinclair/typebox").TLiteral<"claim">, import("@sinclair/typebox").TLiteral<"proof_chain">, import("@sinclair/typebox").TLiteral<"organization">, import("@sinclair/typebox").TLiteral<"rule">, import("@sinclair/typebox").TLiteral<"scene">, import("@sinclair/typebox").TLiteral<"event">]>>; summary: import("@sinclair/typebox").TOptional; status: import("@sinclair/typebox").TOptional; }>>>; note: import("@sinclair/typebox").TOptional; }>; export declare function createPlayEditTool(projectRoot: string, sessionId: string, language?: "zh" | "en"): AgentTool; export declare function createPlayStepTool(pipeline: PipelineRunner, projectRoot: string, sessionId: string, options?: PlayStepToolOptions): AgentTool; export declare function createPlayReviseTool(pipeline: PipelineRunner, projectRoot: string, sessionId: string, options?: PlayReviseToolOptions): AgentTool; declare const WriteTruthFileParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TOptional; fileName: import("@sinclair/typebox").TString; content: import("@sinclair/typebox").TString; }>; export declare function createWriteTruthFileTool(pipeline: PipelineRunner, projectRoot: string, activeBookId: string | null): AgentTool; declare const RenameEntityParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TOptional; oldValue: import("@sinclair/typebox").TString; newValue: import("@sinclair/typebox").TString; }>; export declare function createRenameEntityTool(pipeline: PipelineRunner, projectRoot: string, activeBookId: string | null): AgentTool; declare const PatchChapterTextParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TOptional; chapterNumber: import("@sinclair/typebox").TNumber; targetText: import("@sinclair/typebox").TString; replacementText: import("@sinclair/typebox").TString; }>; declare const DeleteLatestChapterParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TOptional; chapterNumber: import("@sinclair/typebox").TOptional; }>; export declare function createDeleteLatestChapterTool(projectRoot: string, activeBookId: string | null): AgentTool; export declare function createPatchChapterTextTool(pipeline: PipelineRunner, projectRoot: string, activeBookId: string | null): AgentTool; declare const ReplaceChapterTextParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TOptional; chapterNumber: import("@sinclair/typebox").TNumber; fullText: import("@sinclair/typebox").TString; }>; export declare function createReplaceChapterTextTool(pipeline: PipelineRunner, projectRoot: string, activeBookId: string | null): AgentTool; declare const ResyncChapterStateParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TOptional; chapterNumber: import("@sinclair/typebox").TOptional; allowNewHooks: import("@sinclair/typebox").TOptional; }>; export declare function createResyncChapterStateTool(pipeline: PipelineRunner, activeBookId: string | null, options?: SkillAwareProductionOptions & { readonly language?: "zh" | "en"; }): AgentTool; declare const ReadParams: import("@sinclair/typebox").TObject<{ path: import("@sinclair/typebox").TString; }>; export interface ReadToolOptions { readonly allowSystemPaths?: boolean; readonly scope?: "books" | "project"; } export declare function createReadTool(projectRoot: string, options?: ReadToolOptions): AgentTool; declare const EditParams: import("@sinclair/typebox").TObject<{ path: import("@sinclair/typebox").TString; old_string: import("@sinclair/typebox").TString; new_string: import("@sinclair/typebox").TString; }>; export declare function createEditTool(projectRoot: string): AgentTool; declare const WriteFileParams: import("@sinclair/typebox").TObject<{ path: import("@sinclair/typebox").TString; content: import("@sinclair/typebox").TString; }>; export declare function createWriteFileTool(projectRoot: string): AgentTool; declare const GrepParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TString; pattern: import("@sinclair/typebox").TString; }>; export declare function createGrepTool(projectRoot: string): AgentTool; declare const LsParams: import("@sinclair/typebox").TObject<{ bookId: import("@sinclair/typebox").TString; subdir: import("@sinclair/typebox").TOptional; }>; export declare function createLsTool(projectRoot: string): AgentTool; export {}; //# sourceMappingURL=agent-tools.d.ts.map