export type AdaptiveRuntimeCallerKind = "application" | "official-module" | "runtime-surface" | "inspection" | "debug" | "test";
export type AdaptiveRuntimeCaller = {
    kind: AdaptiveRuntimeCallerKind;
    id: string;
    moduleId?: string;
    sessionId?: string;
};
export type AdaptiveRuntimeGate = {
    accepted: boolean;
    reason?: string;
};
export type AdaptiveCapabilityKind = "agent" | "tool" | "model" | "interface" | "runtime-surface" | (string & {});
export type AdaptiveCapabilitySelectorBoundary = "input" | "contract" | "governance" | "runtime-state" | "capability" | "scope";
export type AdaptiveCapabilitySelectorErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_CAPABILITIES" | "MISSING_CAPABILITY_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SCOPE_DENIED" | "NO_AVAILABLE_CAPABILITY";
export type AdaptiveCapabilitySelectorError = {
    code: AdaptiveCapabilitySelectorErrorCode;
    message: string;
    boundary: AdaptiveCapabilitySelectorBoundary;
    publicSafe: true;
};
export type AdaptiveCapabilityCandidateInput = {
    capabilityId?: string;
    kind?: AdaptiveCapabilityKind;
    ready?: boolean;
    healthScore?: number;
    latencyMs?: number;
    priority?: number;
    scopes?: readonly string[];
    signals?: Readonly<Record<string, number>>;
    metadata?: Readonly<Record<string, unknown>>;
};
export type AdaptiveCapabilitySelectorRequest = {
    runtimeId?: string;
    caller?: AdaptiveRuntimeCaller;
    candidates?: readonly AdaptiveCapabilityCandidateInput[];
    desiredKind?: AdaptiveCapabilityKind;
    requiredScopes?: readonly string[];
    allowedScopes?: readonly string[];
    runtimeReady?: boolean;
    contract?: AdaptiveRuntimeGate;
    governance?: AdaptiveRuntimeGate;
};
export type AdaptiveCapabilityCandidate = {
    capabilityId: string;
    kind?: AdaptiveCapabilityKind;
    ready: true;
    healthScore: number;
    latencyMs?: number;
    priority: number;
    scopes: readonly string[];
    signals: Readonly<Record<string, number>>;
    metadata: Readonly<Record<string, unknown>>;
    score: number;
};
export type AdaptiveCapabilitySelection = {
    selectionId: string;
    runtimeId: string;
    caller: AdaptiveRuntimeCaller;
    route: "runtime.adaptiveRuntime.adaptiveCapabilitySelector";
    selected: AdaptiveCapabilityCandidate;
    candidateIds: readonly string[];
    rejectedCandidateIds: readonly string[];
    requiredScopes: readonly string[];
    contractChecked: true;
    governanceChecked: true;
    dryRun: true;
    unsafeSideEffects: false;
};
export type AdaptiveCapabilitySelectorResult = {
    ok: true;
    selection: AdaptiveCapabilitySelection;
    events: readonly string[];
} | {
    ok: false;
    error: AdaptiveCapabilitySelectorError;
    events: readonly string[];
};
export declare function selectAdaptiveCapability(request?: AdaptiveCapabilitySelectorRequest): AdaptiveCapabilitySelectorResult;
