import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { Type } from "typebox"; import type { ApprovalItem, ApprovalItemKind, ApprovalListFilter } from "../domain/approval"; import type { ActorService } from "../services/actor-service"; import type { ApprovalService } from "../services/approval-service"; interface ApprovalListToolParams { kind?: ApprovalItemKind; } interface ApprovalToolDependencies { getApprovalService: () => Promise; getActorService?: () => Promise; } declare const createApprovalListToolDefinition: ({ getApprovalService, getActorService, }: ApprovalToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; promptGuidelines: string[]; parameters: Type.TObject<{ kind: Type.TOptional>; }>; execute(_toolCallId: string, params: ApprovalListToolParams): Promise<{ content: { type: "text"; text: string; }[]; details: { kind: string; filter: ApprovalListFilter; items: ApprovalItem[]; total: number; empty: boolean; }; }>; }; declare const createApproveTaskDescriptionToolDefinition: ({ getApprovalService, getActorService, }: ApprovalToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; parameters: Type.TObject<{ taskId: Type.TString; }>; execute(_toolCallId: string, params: { taskId: string; }): Promise<{ content: { type: "text"; text: string; }[]; details: { kind: string; taskId: string; item: ApprovalItem; }; }>; }; declare const createApproveNoteContentToolDefinition: ({ getApprovalService, getActorService, }: ApprovalToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; parameters: Type.TObject<{ noteId: Type.TString; }>; execute(_toolCallId: string, params: { noteId: string; }): Promise<{ content: { type: "text"; text: string; }[]; details: { kind: string; noteId: string; item: ApprovalItem; }; }>; }; declare const registerApprovalTools: (pi: Pick, dependencies: ApprovalToolDependencies) => void; declare const formatApprovalListContent: (items: ApprovalItem[], actorMap: Map) => string; export { createApprovalListToolDefinition, createApproveNoteContentToolDefinition, createApproveTaskDescriptionToolDefinition, formatApprovalListContent, registerApprovalTools, };