import type { ExtensionAPI, ToolDefinition } from "@earendil-works/pi-coding-agent"; import { Type } from "typebox"; import { type VerificationResult } from "../verification/index.js"; import { clearComponentManifestCache } from "./component-manifests.js"; import { type PageFileBaseline } from "./page-architecture.js"; export interface FrontendToolState { /** Whether the task-scoped frontend component capability is active. */ capabilityActive?: boolean; capabilityActivationReason?: string; dirtyFiles: Set; pendingValidationFiles?: Set; pendingVerification?: boolean; readOnlyCallsSinceMutation?: number; baselineCaptureAttempted?: boolean; verificationBaseline?: VerificationResult; previewedFiles?: Set; validatedRoutes?: Map; validationMode?: FrontendValidationMode; /** @deprecated Use validationMode. Kept for integrations created before 0.1.6. */ visualValidationRequired?: boolean; sceneTemplateRequired?: boolean; sceneTemplateLookup?: { status: "not-started" | "in-progress" | "resolved"; compatible?: boolean; templateId?: string; variant?: "versatile" | "kpc"; requiredRootComponent?: string; targetFile?: string; }; templateComponents?: Set; selectedSceneTemplates?: Map; selectedSceneTemplateContracts?: Map; requiredReferenceImages?: Set; referenceComparisons?: Map; pageFileBaselines?: Map; componentEvidence?: Map; pendingComponentEvidenceGaps?: Map; previewArtifacts?: Set; validationFingerprints?: Map; stalledValidationFiles?: Set; verificationFingerprints?: Map; stalledVerificationFiles?: Set; diagnosticRecoveryUnlocked?: boolean; mockDataRequested?: boolean; componentCompositions?: Map; previewFailures?: Map; lastFinishResult?: { passed: boolean; blockers: string[]; }; finishFailure?: { fingerprint: string; repeats: number; blockers: string[]; files: string[]; remediation: string[]; }; finishRecoveryUnlocked?: boolean; providerRateLimit?: { requestCount: number; totalWaitMs: number; lastWaitMs: number; lastRawEstimatedTokens: number; lastEstimatedTokens: number; lastUsedTokens: number; effectiveTokensPerMinute: number; calibrationFactor: number; }; preWriteComponentResearchCalls?: number; } export type FrontendValidationMode = "code" | "visual"; type PiExecutor = Pick; export { clearComponentManifestCache }; export declare function createFrontendProjectInspectTool(): ToolDefinition; }>, unknown, any>; export declare function createFrontendSceneTemplateTool(state?: FrontendToolState): ToolDefinition; language: Type.TOptional, Type.TLiteral<"ts">, Type.TLiteral<"js">]>>; projectRoot: Type.TOptional; }>, unknown, any>; export declare function createComponentQueryTool(state?: FrontendToolState): ToolDefinition]>; packageName: Type.TOptional[]>>; limit: Type.TOptional; projectRoot: Type.TOptional; }>, unknown, any>; export declare function createComponentContractTool(state?: FrontendToolState): ToolDefinition[]>; sections: Type.TOptional[]>>>; members: Type.TOptional>; force: Type.TOptional; projectRoot: Type.TOptional; }>, unknown, any>; export declare function createComponentUsageTool(state?: FrontendToolState): ToolDefinition[]>; force: Type.TOptional; projectRoot: Type.TOptional; }>, unknown, any>; export declare function createComponentValidateTool(state?: FrontendToolState): ToolDefinition; projectRoot: Type.TOptional; }>, unknown, any>; export declare function createFrontendVerifyTool(pi: PiExecutor, state?: FrontendToolState): ToolDefinition, Type.TLiteral<"full">]>>; projectRoot: Type.TOptional; }>, unknown, any>; export declare function createFrontendPreviewTool(pi: PiExecutor, state: FrontendToolState): ToolDefinition; referenceImage: Type.TOptional; projectRoot: Type.TOptional; }>, unknown, any>; export declare function createFrontendFinishTool(pi: PiExecutor, state: FrontendToolState): ToolDefinition; }>, unknown, any>; export declare function createFrontendTools(pi: PiExecutor, state: FrontendToolState): ToolDefinition[]; //# sourceMappingURL=tools.d.ts.map