import type { OpenClawPluginApi } from './types.js'; export declare function isObjectRecord(value: unknown): value is Record; export declare function looksLikeAdapterPluginConfig(value: unknown): boolean; /** * Extract an adapter-config overlay from a candidate that may be a * mixed payload (route metadata + adapter config). Returns just the * adapter-config keys (`memory`, `channel`, `daemonUrl`, …) or * `undefined` if the candidate carries none. Returns `undefined` for * merged-config-shaped objects (presence of `plugins`) — those are * full snapshots, not overlays. * * T364 round 6 — pre-fix the dispatch resolver and entry classifier * blanket-rejected any object carrying route-metadata keys * (`workspaceDir`, `agents`, `session`, `workspace`). For a gateway * payload like `{ workspaceDir, channel: { port: 9801 } }` that * dropped the legitimate channel override on the floor, leaving * bootstrap/dispatch on the previous channel/memory settings. This * helper lets callers split mixed payloads into the route-metadata * portion (handled by `resolveOpenClawRouteMetadataConfig`) and the * adapter-config portion (the overlay returned here). */ export declare function extractAdapterPluginConfigOverlay(value: unknown): Record | undefined; export declare function isStateMetadataOnlyAdapterConfig(value: unknown): boolean; export declare function isPartialAdapterConfigOverlay(value: unknown): boolean; export declare function mergeAdapterPluginConfigs>(...configs: Array): T; export declare function resolveOpenClawMergedConfig(api: OpenClawPluginApi): Record | undefined; export declare function resolveOpenClawRouteMetadataConfig(api: OpenClawPluginApi): Record | undefined; /** * The documented setup-side resolver picks the first alias to define * a workspace from `agents.defaults.workspace -> workspace -> * workspaceDir`. When merging route-metadata snapshots the resolver * must see a single coherent answer, so any newer config that asserts * a workspace signal (in any of those three slots) supersedes the * older aliases entirely — otherwise an older alias survives and the * resolver picks it ahead of the newer value. * * T364 round 8 — exported for `mergeRouteMetadataWithMergedConfig` in * `DkgChannelPlugin.ts` so dispatch-side and resolve-side route merges * share one normalization rule. */ export declare function scrubStaleWorkspaceAliases(merged: Record, next: Record): void; //# sourceMappingURL=openclaw-config.d.ts.map