import type { PackagedPluginManifestV2, PluginPermission } from "@thortiq/plugin-api";
export declare const PLUGIN_CLI_RESULT_VERSION: 1;
export interface CliDiagnostic {
    readonly code: string;
    readonly severity: "error" | "warning";
    readonly path: string;
    readonly message: string;
}
export interface PackageSummary {
    readonly pluginId: string;
    readonly name: string;
    readonly version: string;
    readonly runtime: "native" | "sandboxed-page";
    readonly digest: `sha256:${string}`;
    readonly permissions: readonly PluginPermission[];
    readonly files: readonly string[];
    readonly totalBytes: number;
}
export interface ValidatedProject {
    readonly root: string;
    readonly rootIdentity: string;
    readonly manifest: PackagedPluginManifestV2;
    readonly digest: `sha256:${string}`;
    readonly permissions: readonly PluginPermission[];
    readonly watchedPaths: readonly string[];
    readonly files: readonly {
        readonly path: string;
        readonly bytes: Uint8Array;
    }[];
    readonly totalBytes: number;
}
export type ProjectValidationResult = {
    readonly ok: true;
    readonly project: ValidatedProject;
} | {
    readonly ok: false;
    readonly diagnostics: readonly CliDiagnostic[];
};
export interface MachineResult<T = unknown> {
    readonly schemaVersion: typeof PLUGIN_CLI_RESULT_VERSION;
    readonly command: string;
    readonly ok: boolean;
    readonly diagnostics: readonly CliDiagnostic[];
    readonly result?: T;
}
