import type { RuntimeContractError, RuntimeContractGate } from "./runtimeErrorContract.js";
export type RuntimeCapabilityKind = "agent" | "tool" | "model" | "interface" | "event" | "extension";
export type RuntimeCapabilityContractErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CONTRACT_ID" | "MISSING_CAPABILITY_ID" | "MISSING_CAPABILITY_KIND" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "CAPABILITY_SCOPE_DENIED";
export type RuntimeCapabilityScope = {
    name: string;
    source: "applicationSurface" | "officialModuleSurface" | "invocationMethod" | "inspection" | "debug";
};
export type RuntimeCapabilityContractRequest = {
    runtimeId: string;
    contractId: string;
    capabilityId: string;
    kind?: RuntimeCapabilityKind;
    requestedScope?: string;
    allowedScopes?: readonly RuntimeCapabilityScope[];
    inputBoundary?: readonly string[];
    outputBoundary?: readonly string[];
    runtimeReady?: boolean;
    contract?: RuntimeContractGate;
    governance?: RuntimeContractGate;
};
export type RuntimeCapabilityContract = {
    runtimeId: string;
    contractId: string;
    capabilityId: string;
    kind: RuntimeCapabilityKind;
    scope?: RuntimeCapabilityScope;
    inputBoundary: readonly string[];
    outputBoundary: readonly string[];
    governanceState: "accepted";
    contractSurface: "runtime.contractSurface";
    requiresRuntimeGovernance: true;
    unsafeSideEffects: false;
};
export type RuntimeCapabilityContractResult = {
    ok: true;
    capability: RuntimeCapabilityContract;
    events: readonly string[];
} | {
    ok: false;
    error: RuntimeContractError;
    events: readonly string[];
};
export declare function defineRuntimeCapabilityContract(request: RuntimeCapabilityContractRequest): RuntimeCapabilityContractResult;
