import type { InstalledPluginPayloadEntry, PackageDigestFile, PackagedPluginManifestV2, PluginManifestV2 } from "./manifest-types.js";
import type { PluginValidationIssue } from "./validation.js";
export type InstalledPluginPayloadValidationResult = {
    readonly ok: true;
    readonly declaredPaths: readonly string[];
    readonly totalBytes: number;
} | {
    readonly ok: false;
    readonly issues: readonly PluginValidationIssue[];
};
export declare function isPackagedPluginManifestV2(manifest: PluginManifestV2): manifest is PackagedPluginManifestV2;
export declare function declaredPluginPackagePaths(manifest: PackagedPluginManifestV2): readonly string[];
export declare function declaredPluginAssetPaths(manifest: PackagedPluginManifestV2): readonly string[];
export declare function isDeclaredPluginAssetPath(manifest: PackagedPluginManifestV2, path: unknown): path is string;
export declare function installedPluginPayloadPaths(manifest: PackagedPluginManifestV2): readonly string[];
export declare function validateInstalledPluginPayload(manifestValue: unknown, entries: readonly InstalledPluginPayloadEntry[]): InstalledPluginPayloadValidationResult;
export declare function canonicalPluginManifestJson(manifestValue: unknown): string;
export declare function canonicalPluginManifestDigestInput(manifestValue: unknown): Uint8Array;
/**
 * Builds unambiguous bytes for a later SHA-256 operation. The canonical
 * manifest and every declared file/path byte are length-prefixed. This helper
 * does not read files or hash content.
 */
export declare function canonicalPluginPackageDigestInput(manifestValue: unknown, files: readonly PackageDigestFile[]): Uint8Array;
