export type AdaptationSignalBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type AdaptationSignalCallerKind = "application" | "official-module" | "runtime-surface" | "inspection" | "test";
export type AdaptationSignalCaller = {
    kind: AdaptationSignalCallerKind;
    id: string;
    moduleId?: string;
    sessionId?: string;
};
export type AdaptationSignalGate = {
    accepted: boolean;
    reason?: string;
};
export type AdaptationSignalKind = "latency" | "cost" | "quality" | "error-rate" | "resource-pressure" | "provider-health" | "module-load" | (string & {});
export type AdaptationSignalInput = {
    signalId?: string;
    kind?: AdaptationSignalKind;
    source?: string;
    value?: number | string | boolean;
    weight?: number;
    tags?: readonly string[];
    metadata?: Readonly<Record<string, unknown>>;
};
export type AdaptationSignalErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_SIGNALS" | "MISSING_SIGNAL_KIND" | "MISSING_SIGNAL_SOURCE" | "INVALID_SIGNAL_WEIGHT" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED" | "SIGNAL_SCOPE_DENIED";
export type AdaptationSignalError = {
    code: AdaptationSignalErrorCode;
    message: string;
    boundary: AdaptationSignalBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type AdaptationSignalRecord = {
    signalId: string;
    kind: AdaptationSignalKind;
    source: string;
    value?: number | string | boolean;
    weight: number;
    tags: readonly string[];
    metadata: Readonly<Record<string, unknown>>;
};
export type AdaptationSignalSnapshot = {
    runtimeId: string;
    collectorId: string;
    caller: AdaptationSignalCaller;
    route: "runtime.adaptiveRuntime.adaptationSignalCollector";
    signals: readonly AdaptationSignalRecord[];
    signalKinds: readonly AdaptationSignalKind[];
    signalSources: readonly string[];
    audit: {
        dryRun: true;
        unsafeSideEffects: false;
        contractSurface: "runtime.contractSurface";
        governanceRequired: true;
    };
};
export type AdaptationSignalCollectRequest = {
    runtimeId?: string;
    collectorId?: string;
    caller?: AdaptationSignalCaller;
    signals?: readonly AdaptationSignalInput[];
    allowedSignalKinds?: readonly string[];
    runtimeReady?: boolean;
    contract?: AdaptationSignalGate;
    governance?: AdaptationSignalGate;
};
export type AdaptationSignalCollectResult = {
    ok: true;
    snapshot: AdaptationSignalSnapshot;
    events: readonly string[];
} | {
    ok: false;
    error: AdaptationSignalError;
    events: readonly string[];
};
export declare const adaptationSignalCollectorDescriptor: {
    readonly surface: "runtime.adaptiveRuntime";
    readonly capability: "adaptationSignalCollector";
    readonly purpose: "collect narrow runtime adaptation signals without mutating runtime internals";
    readonly unsafeSideEffects: false;
};
export declare function collectAdaptationSignals(request?: AdaptationSignalCollectRequest): AdaptationSignalCollectResult;
