import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { Type } from "typebox"; import type { ActorSummary } from "../domain/actor"; import type { ProjectSummary, TaskSummary } from "../domain/task"; import type { ActorService } from "../services/actor-service"; import type { ProjectService } from "../services/project-service"; import type { TaskService } from "../services/task-service"; interface ProjectListToolDetails { kind: "project_list"; projects: ProjectSummary[]; total: number; empty: boolean; } interface ProjectShowToolDetails { kind: "project_show"; projectRef: string; found: boolean; project?: ProjectSummary; } interface ProjectShowToolParams { projectRef: string; } interface ProjectReadToolDependencies { getProjectService: () => Promise; getActorService?: () => Promise; getTaskService?: () => Promise; } declare const createProjectListToolDefinition: ({ getProjectService }: ProjectReadToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; promptGuidelines: string[]; parameters: Type.TObject<{}>; execute(_toolCallId: string, _params: Record): Promise<{ content: { type: "text"; text: string; }[]; details: ProjectListToolDetails; }>; }; declare const createProjectShowToolDefinition: ({ getProjectService, getActorService, getTaskService, }: ProjectReadToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; promptGuidelines: string[]; parameters: Type.TObject<{ projectRef: Type.TString; }>; execute(_toolCallId: string, params: ProjectShowToolParams): Promise<{ content: { type: "text"; text: string; }[]; details: ProjectShowToolDetails; }>; }; declare const registerProjectReadTools: (pi: Pick, dependencies: ProjectReadToolDependencies) => void; declare const resolveProjectByRef: (projectService: ProjectService, projectRef: string) => Promise; declare const formatProjectListContent: (details: ProjectListToolDetails) => string; declare const formatProjectShowContent: (project: ProjectSummary, actors?: ActorSummary[], tasks?: TaskSummary[]) => string; export type { ProjectListToolDetails, ProjectReadToolDependencies, ProjectShowToolDetails }; export { createProjectListToolDefinition, createProjectShowToolDefinition, formatProjectListContent, formatProjectShowContent, registerProjectReadTools, resolveProjectByRef, };