export type AdaptationFeedbackBoundary = "input" | "contract" | "governance" | "runtime-state" | "decision" | "feedback";
export type AdaptationFeedbackCallerKind = "application" | "official-module" | "runtime-surface" | "inspection" | "test";
export type AdaptationFeedbackCaller = {
    kind: AdaptationFeedbackCallerKind;
    id: string;
    moduleId?: string;
    sessionId?: string;
};
export type AdaptationFeedbackGate = {
    accepted: boolean;
    reason?: string;
};
export type AdaptationFeedbackOutcome = "accepted" | "deferred" | "rejected" | "observed";
export type AdaptationFeedbackItem = {
    feedbackId?: string;
    decisionId?: string;
    outcome?: AdaptationFeedbackOutcome | string;
    signalRefs?: readonly string[];
    note?: string;
    metadata?: Readonly<Record<string, unknown>>;
};
export type AdaptationFeedbackErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_LOOP_ID" | "MISSING_DECISION_ID" | "MISSING_FEEDBACK" | "MISSING_FEEDBACK_ID" | "MISSING_FEEDBACK_OUTCOME" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type AdaptationFeedbackError = {
    code: AdaptationFeedbackErrorCode;
    message: string;
    boundary: AdaptationFeedbackBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type AdaptationFeedbackRecord = {
    feedbackId: string;
    decisionId: string;
    outcome: AdaptationFeedbackOutcome | string;
    signalRefs: readonly string[];
    note?: string;
    metadata: Readonly<Record<string, unknown>>;
};
export type AdaptationFeedbackLoopState = {
    runtimeId: string;
    loopId: string;
    decisionId: string;
    caller: AdaptationFeedbackCaller;
    route: "runtime.adaptiveRuntime.adaptationFeedbackLoop";
    feedback: readonly AdaptationFeedbackRecord[];
    nextSignalRefs: readonly string[];
    status: "feedback-recorded";
    audit: {
        dryRun: true;
        unsafeSideEffects: false;
        contractSurface: "runtime.contractSurface";
        governanceRequired: true;
    };
};
export type AdaptationFeedbackLoopRequest = {
    runtimeId?: string;
    loopId?: string;
    decisionId?: string;
    caller?: AdaptationFeedbackCaller;
    feedback?: readonly AdaptationFeedbackItem[];
    runtimeReady?: boolean;
    contract?: AdaptationFeedbackGate;
    governance?: AdaptationFeedbackGate;
};
export type AdaptationFeedbackLoopResult = {
    ok: true;
    loop: AdaptationFeedbackLoopState;
    events: readonly string[];
} | {
    ok: false;
    error: AdaptationFeedbackError;
    events: readonly string[];
};
export declare const adaptationFeedbackLoopDescriptor: {
    readonly surface: "runtime.adaptiveRuntime";
    readonly capability: "adaptationFeedbackLoop";
    readonly purpose: "record adaptation decision feedback as a dry-run loop envelope";
    readonly unsafeSideEffects: false;
};
export declare function runAdaptationFeedbackLoop(request?: AdaptationFeedbackLoopRequest): AdaptationFeedbackLoopResult;
