import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { Type } from "typebox"; import type { NoteEntityType, NoteFilter, NoteSummary } from "../domain/note"; import type { NoteService } from "../services/note-service"; interface NoteListToolParams { entityType?: NoteEntityType; entityId?: string; tag?: string; author?: string; authorActorId?: string; from?: string; to?: string; journal?: boolean; timezone?: string; } interface NoteListToolDetails { kind: "note_list"; filter: NoteFilter; notes: NoteSummary[]; total: number; empty: boolean; } interface NoteShowToolParams { noteId: string; } interface NoteShowToolDetails { kind: "note_show"; noteId: string; found: boolean; note?: NoteSummary; } interface NoteReadToolDependencies { getNoteService: () => Promise; } declare const createNoteListToolDefinition: ({ getNoteService }: NoteReadToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; promptGuidelines: string[]; parameters: Type.TObject<{ entityType: Type.TOptional>; entityId: Type.TOptional; tag: Type.TOptional; author: Type.TOptional; authorActorId: Type.TOptional; from: Type.TOptional; to: Type.TOptional; journal: Type.TOptional; timezone: Type.TOptional; }>; execute(_toolCallId: string, params: NoteListToolParams): Promise<{ content: { type: "text"; text: string; }[]; details: NoteListToolDetails; }>; }; declare const createNoteShowToolDefinition: ({ getNoteService }: NoteReadToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; promptGuidelines: string[]; parameters: Type.TObject<{ noteId: Type.TString; }>; execute(_toolCallId: string, params: NoteShowToolParams): Promise<{ content: { type: "text"; text: string; }[]; details: NoteShowToolDetails; }>; }; declare const registerNoteReadTools: (pi: Pick, dependencies: NoteReadToolDependencies) => void; declare const normalizeNoteListFilter: (params: NoteListToolParams) => NoteFilter; declare const formatNoteListContent: (details: NoteListToolDetails) => string; declare const formatNoteShowContent: (note: NoteSummary) => string; export type { NoteListToolDetails, NoteShowToolDetails, NoteReadToolDependencies }; export { createNoteListToolDefinition, createNoteShowToolDefinition, formatNoteListContent, formatNoteShowContent, normalizeNoteListFilter, registerNoteReadTools, };