import { type ExtensionSmokeResult } from "./smoke.ts"; export type DiagnosticSeverity = "error" | "warning" | "info"; export interface Diagnostic { code: string; severity: DiagnosticSeverity; path: string; message: string; fix?: string; } export interface CheckReport { root: string; ok: boolean; diagnostics: Diagnostic[]; summary: { errors: number; warnings: number; info: number; }; checkedFiles: number; truncated: boolean; smoke?: { extensions: ExtensionSmokeResult[]; }; } export interface CheckOptions { generic?: boolean; smoke?: boolean; maxDiagnostics?: number; maxFiles?: number; } export interface PackageChecker { check(packagePath: string, options?: CheckOptions): Promise; } export declare class StaticPackageChecker implements PackageChecker { check(packagePath: string, options?: CheckOptions): Promise; } declare const RESOURCE_FIELDS: readonly ["extensions", "skills", "prompts", "themes"]; export declare function walk(root: string, maxFiles: number, bundledRoots: string[]): { files: string[]; truncated: boolean; }; export declare function matchesPattern(file: string, pattern: string): boolean; export declare function isContainedFile(root: string, file: string): boolean; export type ResourceField = (typeof RESOURCE_FIELDS)[number]; /** Pure discovery: which shipped files a package's own manifest (or * conventional-directory fallback) declares as extensions/skills/prompts/ * themes, after the same extension-type and containment filtering * resourcesCheck diagnoses -- without the diagnostics. Used by the * package-resource overlay to know what there is to enable or disable. */ export declare function discoverPackageResources(root: string, pkg: Record, files: string[]): Record; export declare function checkPackage(packagePath: string, options?: CheckOptions): Promise; export declare function formatCheckReport(report: CheckReport, json: boolean): string; export {}; //# sourceMappingURL=check.d.ts.map