import type { OpenClawConfig } from "../config/types.openclaw.js"; import type { PluginMetadataSnapshot } from "../plugins/plugin-metadata-snapshot.js"; import { type ProviderConfig } from "./models-config.providers.js"; export type ResolveImplicitProvidersForModelsJson = (params: { agentDir: string; config: OpenClawConfig; env: NodeJS.ProcessEnv; workspaceDir?: string; explicitProviders: Record; pluginMetadataSnapshot?: Pick; providerDiscoveryProviderIds?: readonly string[]; providerDiscoveryTimeoutMs?: number; providerDiscoveryEntriesOnly?: boolean; }) => Promise>; export type ModelsJsonPlan = { action: "skip"; } | { action: "noop"; } | { action: "write"; contents: string; }; export declare function resolveProvidersForModelsJsonWithDeps(params: { cfg: OpenClawConfig; agentDir: string; env: NodeJS.ProcessEnv; workspaceDir?: string; pluginMetadataSnapshot?: Pick; providerDiscoveryProviderIds?: readonly string[]; providerDiscoveryTimeoutMs?: number; providerDiscoveryEntriesOnly?: boolean; }, deps?: { resolveImplicitProviders?: ResolveImplicitProvidersForModelsJson; }): Promise>; export declare function planOpenClawModelsJsonWithDeps(params: { cfg: OpenClawConfig; sourceConfigForSecrets?: OpenClawConfig; agentDir: string; env: NodeJS.ProcessEnv; workspaceDir?: string; existingRaw: string; existingParsed: unknown; pluginMetadataSnapshot?: Pick; providerDiscoveryProviderIds?: readonly string[]; providerDiscoveryTimeoutMs?: number; providerDiscoveryEntriesOnly?: boolean; }, deps?: { resolveImplicitProviders?: ResolveImplicitProvidersForModelsJson; }): Promise; export declare function planOpenClawModelsJson(params: Parameters[0]): Promise;