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