export type AdaptationPolicyRegistryBoundary = "input" | "contract" | "governance" | "runtime-state" | "scope";
export type AdaptationPolicyRegistryCallerKind = "application" | "official-module" | "runtime-surface" | "inspection" | "test";
export type AdaptationPolicyRegistryCaller = {
    kind: AdaptationPolicyRegistryCallerKind;
    id: string;
    moduleId?: string;
    sessionId?: string;
};
export type AdaptationPolicyRegistryGate = {
    accepted: boolean;
    reason?: string;
};
export type AdaptationPolicyAction = "observe" | "select-capability" | "tune-resource" | "provider-fallback" | "module-rebalance" | (string & {});
export type AdaptationPolicyInput = {
    policyId?: string;
    action?: AdaptationPolicyAction;
    priority?: number;
    signalKinds?: readonly string[];
    description?: string;
    enabled?: boolean;
    metadata?: Readonly<Record<string, unknown>>;
};
export type AdaptationPolicyRegistryErrorCode = "MISSING_RUNTIME_ID" | "MISSING_CALLER" | "MISSING_POLICIES" | "MISSING_POLICY_ID" | "DUPLICATE_POLICY_ID" | "MISSING_POLICY_ACTION" | "INVALID_POLICY_PRIORITY" | "ACTION_SCOPE_DENIED" | "RUNTIME_NOT_READY" | "CONTRACT_REJECTED" | "GOVERNANCE_REJECTED";
export type AdaptationPolicyRegistryError = {
    code: AdaptationPolicyRegistryErrorCode;
    message: string;
    boundary: AdaptationPolicyRegistryBoundary;
    safeForRuntimeInspection: true;
    internalDetailExposed: false;
};
export type AdaptationPolicyRecord = {
    policyId: string;
    action: AdaptationPolicyAction;
    priority: number;
    signalKinds: readonly string[];
    description?: string;
    enabled: boolean;
    metadata: Readonly<Record<string, unknown>>;
};
export type AdaptationPolicyRegistrySnapshot = {
    runtimeId: string;
    registryId: string;
    caller: AdaptationPolicyRegistryCaller;
    route: "runtime.adaptiveRuntime.adaptationPolicyRegistry";
    policies: readonly AdaptationPolicyRecord[];
    enabledPolicyIds: readonly string[];
    actions: readonly AdaptationPolicyAction[];
    audit: {
        dryRun: true;
        unsafeSideEffects: false;
        contractSurface: "runtime.contractSurface";
        governanceRequired: true;
    };
};
export type RegisterAdaptationPoliciesRequest = {
    runtimeId?: string;
    registryId?: string;
    caller?: AdaptationPolicyRegistryCaller;
    policies?: readonly AdaptationPolicyInput[];
    allowedActions?: readonly string[];
    runtimeReady?: boolean;
    contract?: AdaptationPolicyRegistryGate;
    governance?: AdaptationPolicyRegistryGate;
};
export type RegisterAdaptationPoliciesResult = {
    ok: true;
    registry: AdaptationPolicyRegistrySnapshot;
    events: readonly string[];
} | {
    ok: false;
    error: AdaptationPolicyRegistryError;
    events: readonly string[];
};
export declare const adaptationPolicyRegistryDescriptor: {
    readonly surface: "runtime.adaptiveRuntime";
    readonly capability: "adaptationPolicyRegistry";
    readonly purpose: "register narrow adaptation policy descriptors without executing adaptive actions";
    readonly unsafeSideEffects: false;
};
export declare function registerAdaptationPolicies(request?: RegisterAdaptationPoliciesRequest): RegisterAdaptationPoliciesResult;
