/**
 * Vetted runtime-dependency catalog for community skills.
 *
 * A skill manifest may declare `runtime: ["officecli"]` — bare ids only. The
 * registry stays declarative: WHAT a skill needs lives in Hub data, but HOW to
 * probe/install it lives here, reviewed in code. A runtime is a single-file
 * binary mirrored to our OSS; the installer resolves a Hub-signed download URL,
 * verifies its sha256 BEFORE placing the file, and never executes registry
 * payloads — so a compromised registry row cannot turn "install runtime" into
 * arbitrary code execution. Unknown ids surface as "manual" in the handshake UI
 * instead of running anything. CN-reliable: no dependency on foreign mirrors.
 */
export interface RuntimeDependencySpec {
    id: string;
    /** Human-facing name shown in the handshake card. */
    label: string;
    /** Executable probed on PATH (and known-location fallbacks). */
    bin: string;
    probeArgs: string[];
    /** Known install locations not yet on PATH in this process (fresh installs). */
    extraWindowsPaths?: string[];
    /**
     * quick=true → the handshake auto-installs without an extra consent step
     * (small, single-artifact). quick=false → the client must show a consent
     * card first (large download / system-level changes).
     */
    quick: boolean;
    /** Honest size estimate surfaced in the consent card. */
    estSizeMB: number;
    /** Single-file binary mirrored to our OSS, resolved per-platform via the Hub. */
    hubBinary: HubBinaryInstall;
    installTimeoutMs: number;
    docsUrl?: string;
}
export interface HubBinaryInstall {
    /** Resolve id for the Hub (GET /api/v15/runtime/:id/resolve?platform=…). */
    resourceId: string;
    /** Absolute path the per-platform binary is written to (matches upstream layout). */
    dest(): string;
    /** Directory appended to the persistent user PATH so the agent shell finds `bin`. */
    pathDir(): string;
    /** chmod 0o755 after writing (POSIX). */
    posixExecutable: boolean;
}
export declare const RUNTIME_DEPENDENCIES: Record<string, RuntimeDependencySpec>;
export interface RuntimeDependencyStatus {
    id: string;
    /** false → not in the vetted catalog: the client can only show guidance. */
    known: boolean;
    label?: string;
    present: boolean;
    version?: string;
    /** Absolute path when found via a known location instead of PATH. */
    binPath?: string;
    quick?: boolean;
    estSizeMB?: number;
    docsUrl?: string;
}
/** Resolved download for a hub-binary runtime (signed URL + integrity metadata). */
export interface ResolvedRuntimeBinary {
    version: string;
    downloadUrl: string;
    /** sha256 hex digest — the integrity anchor verified before placing the file. */
    checksum: string;
    sizeBytes: number;
}
export interface RuntimeInstallDeps {
    /** Resolve a hub-binary runtime via the Hub (community client). */
    resolveBinary(id: string, platform: string): Promise<ResolvedRuntimeBinary>;
    /** Injectable for tests. */
    fetchFn?: typeof fetch;
}
/** Map this host to the officecli asset platform key (`<os>-<arch>`). */
export declare function runtimePlatformKey(): string;
export declare function probeRuntimeDependency(id: string): Promise<RuntimeDependencyStatus>;
export interface RuntimeInstallResult {
    id: string;
    ok: true;
    version?: string;
    binPath?: string;
}
export declare function installRuntimeDependency(id: string, deps: RuntimeInstallDeps): Promise<RuntimeInstallResult>;
