export type AdaptationDecisionBoundary = "input" | "contract" | "governance" | "runtime-state" | "policy" | "signal";
export type AdaptationDecisionCallerKind = "application" | "official-module" | "runtime-surface" | "inspection" | "test";
export type AdaptationDecisionCaller = {
    kind: AdaptationDecisionCallerKind;
    id: string;
    moduleId?: string;
    sessionId?: string;
};
export type AdaptationDecisionGate = {
    accepted: boolean;
    reason?: string;
};
export type AdaptationDecisionAction = "observe" | "select-capability" | "tune-resource" | "provider-fallback" | "module-rebalance" | (string & {});
export type AdaptationDecisionPolicyRef = {
    policyId?: string;
    action?: AdaptationDecisionAction;
    priority?: number;
    enabled?: boolean;
};
export type AdaptationDecisionSignalRef = {
    signalId?: string;
    kind?: string;
    weight?: number;
};
export type AdaptationDecisionErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_DECISION_ID" | "MISSING_POLICIES" | "MISSING_POLICY_ID" | "MISSING_POLICY_ACTION" | "NO_ENABLED_POLICY" | "MISSING_SIGNALS" | "MISSING_SIGNAL_ID" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type AdaptationDecisionError = {
    code: AdaptationDecisionErrorCode;
    message: string;
    boundary: AdaptationDecisionBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type AdaptationDecisionRecord = {
    decisionId: string;
    runtimeId: string;
    caller: AdaptationDecisionCaller;
    route: "runtime.adaptiveRuntime.adaptationDecisionSurface";
    selectedPolicyId: string;
    action: AdaptationDecisionAction;
    consideredPolicyIds: readonly string[];
    signalIds: readonly string[];
    confidence: number;
    mode: "dry-run-decision";
    contractChecked: true;
    governanceChecked: true;
    unsafeSideEffects: false;
};
export type AdaptationDecisionRequest = {
    runtimeId?: string;
    decisionId?: string;
    caller?: AdaptationDecisionCaller;
    policies?: readonly AdaptationDecisionPolicyRef[];
    signals?: readonly AdaptationDecisionSignalRef[];
    runtimeReady?: boolean;
    contract?: AdaptationDecisionGate;
    governance?: AdaptationDecisionGate;
};
export type AdaptationDecisionResult = {
    ok: true;
    decision: AdaptationDecisionRecord;
    events: readonly string[];
} | {
    ok: false;
    error: AdaptationDecisionError;
    events: readonly string[];
};
export declare const adaptationDecisionSurfaceDescriptor: {
    readonly surface: "runtime.adaptiveRuntime";
    readonly capability: "adaptationDecisionSurface";
    readonly purpose: "choose a dry-run adaptation decision from registered policies and collected signals";
    readonly unsafeSideEffects: false;
};
export declare function decideAdaptationSurface(request?: AdaptationDecisionRequest): AdaptationDecisionResult;
