export type InterfaceScopeBoundary = "input" | "governance" | "scope";
export type InterfaceScopeGate = {
    accepted: boolean;
    reason?: string;
};
export type InterfaceScopeRequest = {
    providerId?: string;
    interfaceId?: string;
    requestedCapabilities?: readonly string[];
    grantedCapabilities?: readonly string[];
    requestedFormats?: readonly string[];
    grantedFormats?: readonly string[];
    governance?: InterfaceScopeGate;
};
export type InterfaceScopeDecision = {
    providerId: string;
    interfaceId: string;
    accepted: boolean;
    requestedCapabilities: readonly string[];
    grantedCapabilities: readonly string[];
    missingCapabilities: readonly string[];
    requestedFormats: readonly string[];
    grantedFormats: readonly string[];
    missingFormats: readonly string[];
    readonly: true;
    unsafeSideEffects: false;
};
export type InterfaceScopeErrorCode = "MISSING_PROVIDER_ID" | "MISSING_INTERFACE_ID" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED";
export type InterfaceScopeError = {
    code: InterfaceScopeErrorCode;
    message: string;
    boundary: InterfaceScopeBoundary;
    publicSafe: true;
};
export type InterfaceScopeResult = {
    ok: true;
    decision: InterfaceScopeDecision;
    events: readonly string[];
} | {
    ok: false;
    error: InterfaceScopeError;
    decision?: InterfaceScopeDecision;
    events: readonly string[];
};
export declare function evaluateInterfaceScope(request?: InterfaceScopeRequest): InterfaceScopeResult;
