import type { BaseToolExecutorPort } from "../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolExecutorPort.js";
import type { BaseToolDefinition, BaseToolHandler } from "../../../../agentCore/agent_executionEngine/basic_toolLayer/baseTools/baseToolDefinition.js";
import { planSearchEngineQuery as planSearchEngineQueryCore, type SearchEngineExecutor, type SearchEngineOutput, type SearchEngineRequest } from "./core.js";
import { type SearchEngineDependencies, type SearchEnginePracticeProviderName, type SearchEngineProviderPractice } from "./dependencies.js";
export * from "./core.js";
export type SearchEngineBestPracticeRequest = SearchEngineRequest & {
    executorPort?: BaseToolExecutorPort;
    preferredProvider?: SearchEnginePracticeProviderName;
};
export type SearchEngineHandlerInput = Omit<SearchEngineBestPracticeRequest, "executorPort">;
export type SearchEnginePracticeSelection = {
    providerName: SearchEnginePracticeProviderName;
    practice: SearchEngineProviderPractice;
    provider?: SearchEngineExecutor;
};
export declare const searchEngineProviderPractices: readonly [SearchEngineProviderPractice, SearchEngineProviderPractice, SearchEngineProviderPractice];
export declare const searchEngineBestPracticeDescriptor: {
    readonly toolId: "search.searchEngine";
    readonly bestPractice: "storage-owned-generic-search-engine-with-runtime-network-support";
    readonly sourcePriority: readonly ["cli", "agent-sdk", "api-sdk", "praxis-native"];
    readonly providerOrder: readonly ["anthropic", "openai", "deepmind"];
    readonly dependencies: ({
        dependencyId: string;
        kind: "runtime";
        required: true;
        description: string;
    } | {
        dependencyId: string;
        kind: "permission";
        required: true;
        description: string;
    })[];
};
export declare function selectSearchEnginePractice(dependencies?: SearchEngineDependencies & {
    preferredProvider?: SearchEnginePracticeProviderName;
}): SearchEnginePracticeSelection;
export declare function executeSearchEngineQuery(request?: SearchEngineBestPracticeRequest): ReturnType<typeof planSearchEngineQueryCore>;
export declare const planSearchEngineQuery: typeof executeSearchEngineQuery;
export declare const searchEngineBaseToolDefinition: BaseToolDefinition<SearchEngineHandlerInput, SearchEngineOutput>;
export declare const searchEngineHandler: BaseToolHandler<SearchEngineHandlerInput, SearchEngineOutput>;
