//#region src/plugin-sdk/provider-selection-runtime.d.ts /** Provider descriptor fields needed for explicit or automatic selection. */ type AutoSelectableProvider = { /** Provider id used for explicit config lookup and selected result metadata. */id: string; /** Lower values win when no explicit provider is configured. */ autoSelectOrder?: number; }; /** Provider selection result before capability-specific configuration checks run. */ type ProviderSelection = { /** Normalized explicit provider id, when the caller supplied one. */configuredProviderId?: string; /** True when an explicit provider id was configured but no provider was registered. */ missingConfiguredProvider: boolean; /** Selected provider, either explicit or the first auto-selectable provider. */ provider: TProvider | undefined; }; /** Final provider resolution result including capability-specific config. */ type ResolvedConfiguredProvider = { /** Provider exists and passed the capability-specific configuration check. */ok: true; /** Normalized explicit provider id, when the caller supplied one. */ configuredProviderId?: string; /** Selected provider plugin/descriptor. */ provider: TProvider; /** Capability-specific provider config resolved for the selected provider. */ providerConfig: TConfig; } | { /** Provider selection failed before a configured provider could be used. */ok: false; /** Stable failure code for setup/runtime callers. */ code: "missing-configured-provider" | "no-registered-provider" | "provider-not-configured"; /** Normalized explicit provider id, when the caller supplied one. */ configuredProviderId?: string; /** Candidate provider that existed but failed configuration checks. */ provider?: TProvider; }; /** Select an explicit provider when configured, otherwise the lowest-order auto provider. */ declare function selectConfiguredOrAutoProvider(params: { /** Optional explicit provider id from config or user input. */configuredProviderId?: string; /** Lookup for an explicit provider id after normalization. */ getConfiguredProvider: (providerId: string | undefined) => TProvider | undefined; /** Iterable of providers eligible for auto-selection. */ listProviders: () => Iterable; }): ProviderSelection; /** Merge canonical provider config with selected-provider override config. */ declare function resolveProviderRawConfig(params: { /** Canonical provider id whose default config should be read first. */providerId: string; /** Optional selected/alias provider id whose config overrides canonical values. */ configuredProviderId?: string; /** Provider config map keyed by canonical and configured provider ids. */ providerConfigs?: Record | undefined>; }): Record; /** Resolve a configured or auto-selected provider that passes capability config checks. */ declare function resolveConfiguredCapabilityProvider(params: { /** Optional explicit provider id from config or user input. */configuredProviderId?: string; /** Provider config map used to merge canonical and selected provider settings. */ providerConfigs?: Record | undefined>; /** Current full config used only for configured-state checks. */ cfg: TFullConfig | undefined; /** Full config passed to provider config resolution. */ cfgForResolve: TFullConfig; /** Lookup for an explicit provider id after normalization. */ getConfiguredProvider: (providerId: string | undefined) => TProvider | undefined; /** Iterable of providers eligible for auto-selection. */ listProviders: () => Iterable; resolveProviderConfig: (params: { /** Candidate provider being resolved. */provider: TProvider; /** Full config passed through for capability-specific config resolution. */ cfg: TFullConfig; /** Merged raw provider config for canonical and selected provider ids. */ rawConfig: Record; }) => TConfig; isProviderConfigured: (params: { /** Candidate provider being checked. */provider: TProvider; /** Current full config used by capability-specific configured checks. */ cfg: TFullConfig | undefined; /** Resolved capability-specific provider config. */ providerConfig: TConfig; }) => boolean; }): ResolvedConfiguredProvider; //#endregion export { AutoSelectableProvider, ProviderSelection, ResolvedConfiguredProvider, resolveConfiguredCapabilityProvider, resolveProviderRawConfig, selectConfiguredOrAutoProvider };