export type CapabilitySelectionBoundary = "input" | "contract" | "governance" | "scope" | "selection";
export type CapabilitySelectionErrorCode = "MISSING_PANEL_ID" | "MISSING_INTENT" | "EMPTY_CANDIDATES" | "MISSING_CAPABILITY_ID" | "MISSING_PROVIDER_ID" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "NO_COMPATIBLE_CAPABILITY";
export type CapabilitySelectionGate = {
    accepted: boolean;
    reason?: string;
};
export type CapabilitySelectionIntent = {
    requiredModalities?: readonly string[];
    requiredInterfaces?: readonly string[];
    requiredScopes?: readonly string[];
    preferredProviderId?: string;
    preferredModelId?: string;
    priority?: "quality" | "cost" | "latency" | "stability";
};
export type CapabilitySelectionCandidate = {
    capabilityId?: string;
    providerId?: string;
    modelId?: string;
    modalities?: readonly string[];
    interfaces?: readonly string[];
    scopes?: readonly string[];
    qualityScore?: number;
    costScore?: number;
    latencyScore?: number;
    stabilityScore?: number;
    compatibility?: "compatible" | "partial" | "incompatible";
    gaps?: readonly string[];
};
export type CapabilitySelectionRequest = {
    panelId?: string;
    runtimeId?: string;
    intent?: CapabilitySelectionIntent;
    candidates?: readonly CapabilitySelectionCandidate[];
    allowedScopes?: readonly string[];
    contract?: CapabilitySelectionGate;
    governance?: CapabilitySelectionGate;
};
export type CapabilitySelectionError = {
    code: CapabilitySelectionErrorCode;
    message: string;
    boundary: CapabilitySelectionBoundary;
    safeForRuntimeInspection: true;
    providerRawShapeExposed: false;
};
export type CapabilitySelectionOption = {
    capabilityId: string;
    providerId: string;
    modelId?: string;
    modalities: readonly string[];
    interfaces: readonly string[];
    scopes: readonly string[];
    compatibility: "compatible" | "partial";
    score: number;
    rank: number;
    gaps: readonly string[];
};
export type CapabilitySelectionPanel = {
    kind: "capability-selection-panel";
    panelId: string;
    runtimeId?: string;
    intent: CapabilitySelectionIntent;
    options: readonly CapabilitySelectionOption[];
    selected?: CapabilitySelectionOption;
    bridgeReady: boolean;
    providerRawShapeExposed: false;
    providerCallPlanned: false;
    unsafeSideEffects: false;
};
export type CapabilitySelectionPanelResult = {
    ok: true;
    panel: CapabilitySelectionPanel;
    events: readonly string[];
} | {
    ok: false;
    error: CapabilitySelectionError;
    events: readonly string[];
};
export declare const capabilitySelectionPanelDescriptor: {
    readonly capability: "capability-selection-panel";
    readonly route: "agent_modelAdapter.abstractionLayer";
    readonly purpose: "rank abstracted model capabilities for bridging-layer handoff without invoking providers";
    readonly providerRawShapeExposed: false;
    readonly providerCallPlanned: false;
    readonly unsafeSideEffects: false;
};
export declare function createCapabilitySelectionPanel(request?: CapabilitySelectionRequest): CapabilitySelectionPanelResult;
