import type { ExtensionAPI } from "@earendil-works/pi-coding-agent"; import { Type } from "typebox"; import type { RecurringMissPolicy, RecurringTemplateDetail } from "../domain/recurring"; import type { ProjectSummary, TaskPriority } from "../domain/task"; import type { ProjectService } from "../services/project-service"; import type { CreateRecurringInput, DeleteRecurringResult, RecurringService, UpdateRecurringInput } from "../services/recurring-service"; interface RecurringCreateToolParams { title: string; projectId: string; schedule: string; timezone: string; startDate: string; description?: string; priority?: TaskPriority; endDate?: string; missPolicy?: RecurringMissPolicy; } interface RecurringUpdateToolParams { recurringId: string; title?: string; projectId?: string; schedule?: string; timezone?: string; startDate?: string; description?: string; priority?: TaskPriority; endDate?: string; missPolicy?: RecurringMissPolicy; paused?: boolean; } interface RecurringDeleteToolParams { recurringId: string; } interface RecurringCreateToolDetails { kind: "recurring_create"; input: CreateRecurringInput; template: RecurringTemplateDetail; } interface RecurringUpdateToolDetails { kind: "recurring_update"; input: UpdateRecurringInput; template: RecurringTemplateDetail; } interface RecurringDeleteToolDetails { kind: "recurring_delete"; recurringId: string; found: boolean; deleted: boolean; template?: DeleteRecurringResult; } interface RecurringMutationToolDependencies { getRecurringService: () => Promise; getProjectService: () => Promise; } declare const createRecurringCreateToolDefinition: ({ getRecurringService, getProjectService, }: RecurringMutationToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; promptGuidelines: string[]; parameters: Type.TObject<{ title: Type.TString; projectId: Type.TString; schedule: Type.TString; timezone: Type.TString; startDate: Type.TString; description: Type.TOptional; priority: Type.TOptional>; endDate: Type.TOptional; missPolicy: Type.TOptional>; }>; execute(_toolCallId: string, params: RecurringCreateToolParams): Promise<{ content: { type: "text"; text: string; }[]; details: RecurringCreateToolDetails; }>; }; declare const createRecurringUpdateToolDefinition: ({ getRecurringService, getProjectService, }: RecurringMutationToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; promptGuidelines: string[]; parameters: Type.TObject<{ recurringId: Type.TString; title: Type.TOptional; projectId: Type.TOptional; schedule: Type.TOptional; timezone: Type.TOptional; startDate: Type.TOptional; description: Type.TOptional; priority: Type.TOptional>; endDate: Type.TOptional; missPolicy: Type.TOptional>; paused: Type.TOptional; }>; execute(_toolCallId: string, params: RecurringUpdateToolParams): Promise<{ content: { type: "text"; text: string; }[]; details: RecurringUpdateToolDetails; }>; }; declare const createRecurringDeleteToolDefinition: ({ getRecurringService, }: RecurringMutationToolDependencies) => { name: string; label: string; description: string; promptSnippet: string; promptGuidelines: string[]; parameters: Type.TObject<{ recurringId: Type.TString; }>; execute(_toolCallId: string, params: RecurringDeleteToolParams): Promise<{ content: { type: "text"; text: string; }[]; details: RecurringDeleteToolDetails; }>; }; declare const registerRecurringMutationTools: (pi: Pick, dependencies: RecurringMutationToolDependencies) => void; declare const normalizeCreateRecurringInput: (params: RecurringCreateToolParams) => CreateRecurringInput; declare const resolveCreateRecurringInput: (projectService: ProjectService, params: RecurringCreateToolParams) => Promise; declare const resolveUpdateRecurringInput: (projectService: ProjectService, params: RecurringUpdateToolParams) => Promise; declare const normalizeUpdateRecurringInput: (params: RecurringUpdateToolParams) => UpdateRecurringInput; declare const resolveProjectForRecurringMutation: (projectService: ProjectService, projectRef: string) => Promise; export type { RecurringCreateToolDetails, RecurringDeleteToolDetails, RecurringMutationToolDependencies, RecurringUpdateToolDetails, }; export { createRecurringCreateToolDefinition, createRecurringDeleteToolDefinition, createRecurringUpdateToolDefinition, normalizeCreateRecurringInput, normalizeUpdateRecurringInput, registerRecurringMutationTools, resolveCreateRecurringInput, resolveProjectForRecurringMutation, resolveUpdateRecurringInput, };