/**
 * manifest.ts — TypeScript shape of a driver manifest.
 *
 * Mirrors `packages/framework/src/cli/verify-proof/manifest-schema.json`
 * (ST03) one-to-one. The JSON Schema is the runtime validator (publish-
 * time + load-time); this TS type is what third-party driver authors
 * `import type` to author manifests with intellisense.
 *
 * Spec authority: spec.md §ID-03 (trust tiers) + §ID-04 (driver layout).
 */
export type TrustTier = 'first_party_signed' | 'community_verified' | 'community_unverified' | 'local_unverified';
export type Stability = 'experimental' | 'beta' | 'ga';
export type SandboxProfile = 'read_only' | 'workspace_write' | 'system_write';
export type NetworkPosture = 'deny' | 'allowlist' | 'allow';
/** Structured local-command — strings are NEVER accepted (ID-03). */
export interface LocalCommand {
    readonly binary: string;
    readonly args: readonly string[];
}
/** Transport — exactly one of the variants. */
export type Transport = {
    readonly mcp_server_id: string;
} | {
    readonly local_command: LocalCommand;
} | {
    readonly http_endpoint: string;
} | {
    readonly npm_package: string;
} | {
    readonly builtin: true;
};
export interface Publisher {
    readonly name: string;
    readonly npm_scope?: string;
    readonly github_org?: string;
    readonly verified?: boolean;
}
export interface Provenance {
    readonly scheme?: 'sigstore' | 'npm-provenance' | 'gpg' | 'none';
    readonly identity?: string;
    readonly signature?: string;
    readonly certificate?: string;
}
export interface Integrity {
    readonly manifest_sha256?: string;
    readonly artifact_digest?: string;
}
export interface TrustBlock {
    readonly tier: TrustTier;
    readonly publisher?: Publisher;
    readonly provenance?: Provenance;
    readonly integrity?: Integrity;
}
export interface SecurityBlock {
    readonly sandbox_profile: SandboxProfile;
    readonly network: NetworkPosture;
    readonly allowed_executables?: readonly string[];
    readonly allow_shell?: boolean;
    readonly requires_user_approval?: boolean;
}
export interface AuditBlock {
    readonly log_invocations: boolean;
    readonly log_manifest_hash: boolean;
}
export interface PreflightCheck {
    readonly name: string;
    readonly command?: LocalCommand;
    readonly required: boolean;
}
export interface DriverManifest {
    readonly driverId: string;
    readonly version: string;
    readonly targets: readonly string[];
    readonly capabilities: readonly string[];
    readonly evidence_capabilities?: readonly string[];
    readonly frameworkApiRange: string;
    readonly requires?: {
        readonly allOf?: readonly string[];
        readonly anyOf?: readonly string[];
    };
    readonly os?: readonly string[];
    readonly arch?: readonly string[];
    readonly container_support?: boolean;
    readonly conflicts_with?: readonly string[];
    readonly priority: number;
    readonly stability: Stability;
    readonly trust: TrustBlock;
    readonly security: SecurityBlock;
    readonly audit?: AuditBlock;
    readonly preflight?: readonly PreflightCheck[];
    readonly transport: Transport;
}
//# sourceMappingURL=manifest.d.ts.map