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 { planSearchFetch as planSearchFetchCore, type SearchFetchExecutor, type SearchFetchOutput, type SearchFetchRequest } from "./core.js";
import { type SearchFetchDependencies, type SearchFetchPracticeProviderName, type SearchFetchProviderPractice } from "./dependencies.js";
export * from "./core.js";
export type SearchFetchBestPracticeRequest = SearchFetchRequest & {
    executorPort?: BaseToolExecutorPort;
    preferredProvider?: SearchFetchPracticeProviderName;
};
export type SearchFetchHandlerInput = Omit<SearchFetchBestPracticeRequest, "executorPort">;
export type SearchFetchPracticeSelection = {
    providerName: SearchFetchPracticeProviderName;
    practice: SearchFetchProviderPractice;
    provider?: SearchFetchExecutor;
};
export declare const searchFetchProviderPractices: readonly [SearchFetchProviderPractice, SearchFetchProviderPractice, SearchFetchProviderPractice];
export declare const searchFetchBestPracticeDescriptor: {
    readonly toolId: "search.fetch";
    readonly bestPractice: "storage-owned-runtime-fetch-with-provider-practice-evidence";
    readonly sourcePriority: readonly ["cli", "agent-sdk", "api-sdk", "praxis-native"];
    readonly providerOrder: readonly ["anthropic", "deepmind", "openai"];
    readonly dependencies: ({
        dependencyId: string;
        kind: "runtime";
        required: true;
        description: string;
    } | {
        dependencyId: string;
        kind: "permission";
        required: true;
        description: string;
    } | {
        dependencyId: string;
        kind: "service";
        required: false;
        description: string;
    })[];
};
export declare function selectSearchFetchPractice(dependencies?: SearchFetchDependencies & {
    preferredProvider?: SearchFetchPracticeProviderName;
}): SearchFetchPracticeSelection;
export declare function executeSearchFetch(request?: SearchFetchBestPracticeRequest): ReturnType<typeof planSearchFetchCore>;
export declare const planSearchFetch: typeof executeSearchFetch;
export declare const searchFetchBaseToolDefinition: BaseToolDefinition<SearchFetchHandlerInput, SearchFetchOutput>;
export declare const searchFetchHandler: BaseToolHandler<SearchFetchHandlerInput, SearchFetchOutput>;
