/**
 * `PATCH /api/config` — tail sections that are each <50 lines:
 *   update / cron / goals / session / gateway.{skillsMarketplaceProvider,
 *   skillsStoreBaseUrl} / providers / providersConfig / stt / tts / tools /
 *   tunnel / bindings / mcp.
 *
 * Most of these delegate to a `mergeXxxConfigPatch(config, body) → { ok,
 * message? }` helper that lives next to the schema, so this file is mostly
 * "validate object shape, call helper, surface 400 on failure". The async
 * `providers` branch saves into the credential resolver rather than config.
 *
 * Final validation (resolveGatewayAuth + assertGatewayRuntimeConfig) runs
 * after every gateway-touching patch lands, so it sees the merged shape.
 */
import type { Config } from '../../../../config/schema.js';
import { type PatchResult } from './result.js';
export declare function applyMiscPatch(config: Config, body: any): Promise<PatchResult>;
/**
 * Re-validate gateway runtime config when `body.gateway` touched anything that
 * could break the bind/auth contract. Runs *after* all per-section patches
 * land so it sees the fully merged shape.
 */
export declare function validateGatewayAfterPatch(config: Config, body: any): PatchResult;
