import type { SecretInputMode } from "../commands/onboard-types.js";
import type { KlawConfig } from "../config/types.klaw.js";
import { type SecretInput } from "../config/types.secrets.js";
import type { PluginWebSearchProviderEntry } from "../plugins/types.js";
import type { RuntimeEnv } from "../runtime.js";
import type { WizardPrompter } from "../wizard/prompts.js";
export type SearchProvider = NonNullable<NonNullable<NonNullable<NonNullable<KlawConfig["tools"]>["web"]>["search"]>["provider"]>;
export declare function listSearchProviderOptions(config?: KlawConfig): readonly PluginWebSearchProviderEntry[];
export declare function resolveSearchProviderOptions(config?: KlawConfig): readonly PluginWebSearchProviderEntry[];
export declare function hasKeyInEnv(entry: Pick<PluginWebSearchProviderEntry, "envVars">): boolean;
export declare function resolveExistingKey(config: KlawConfig, provider: SearchProvider): string | undefined;
export declare function hasExistingKey(config: KlawConfig, provider: SearchProvider): boolean;
export declare function applySearchKey(config: KlawConfig, provider: SearchProvider, key: SecretInput): KlawConfig;
export declare function applySearchProviderSelection(config: KlawConfig, provider: SearchProvider): KlawConfig;
export type SetupSearchOptions = {
    quickstartDefaults?: boolean;
    secretInputMode?: SecretInputMode;
};
export declare function runSearchSetupFlow(config: KlawConfig, runtime: RuntimeEnv, prompter: WizardPrompter, opts?: SetupSearchOptions): Promise<KlawConfig>;
