export type MultiagentInterfaceBoundary = "input" | "contract" | "governance" | "scope" | "runtime-state";
export type MultiagentInterfaceGate = {
    accepted: boolean;
    reason?: string;
};
export type MultiagentInterfaceCapabilityDeclaration = {
    capabilityId?: string;
    inputBoundary?: readonly string[];
    outputBoundary?: readonly string[];
    rules?: readonly string[];
};
export type MultiagentInterfaceRequest = {
    runtimeId?: string;
    interfaceId?: string;
    moduleId?: string;
    capabilities?: readonly MultiagentInterfaceCapabilityDeclaration[];
    requestedScopes?: readonly string[];
    allowedScopes?: readonly string[];
    runtimeReady?: boolean;
    contract?: MultiagentInterfaceGate;
    governance?: MultiagentInterfaceGate;
};
export type MultiagentInterfaceErrorCode = "MISSING_RUNTIME_ID" | "MISSING_INTERFACE_ID" | "MISSING_MODULE_ID" | "MISSING_CAPABILITY" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type MultiagentInterfaceError = {
    code: MultiagentInterfaceErrorCode;
    message: string;
    boundary: MultiagentInterfaceBoundary;
    safeForRuntimeInspection: true;
};
export type MultiagentInterfaceCapability = {
    capabilityId: string;
    inputBoundary: readonly string[];
    outputBoundary: readonly string[];
    rules: readonly string[];
};
export type MultiagentInterfaceContract = {
    module: "multiagent";
    runtimeId: string;
    interfaceId: string;
    moduleId: string;
    route: "runtime.interfaceAdapter";
    capabilities: readonly MultiagentInterfaceCapability[];
    acceptedScopes: readonly string[];
    contractSurface: "runtime.contractSurface";
    governanceRequired: true;
    dispatch: "dry-run";
    unsafeSideEffects: false;
    internalStrategyIncluded: false;
};
export type MultiagentInterfaceResult = {
    ok: true;
    contract: MultiagentInterfaceContract;
    events: readonly string[];
} | {
    ok: false;
    error: MultiagentInterfaceError;
    events: readonly string[];
};
export declare const multiagentInterfaceDescriptor: {
    readonly module: "multiagent";
    readonly route: "runtime.interfaceAdapter";
    readonly purpose: "define the multiagent official-module interface boundary without implementing multiagent strategy";
    readonly unsafeSideEffects: false;
};
export declare function defineMultiagentInterfaceBoundary(request?: MultiagentInterfaceRequest): MultiagentInterfaceResult;
