import type { WebSearchRequest, WebSearchResult } from '@deepseek-ai/dsh-web'; /** An already selected, operation-owned search entry; availability remains its owner's responsibility. */ export interface SearchToolProvider { readonly id: string; search(request: WebSearchRequest, signal?: AbortSignal): Promise; } /** Captured policy for one primary attempt and at most one distinct final fallback. */ export interface SearchToolRoutingDependencies { readonly primary?: SearchToolProvider | undefined; readonly fallback?: SearchToolProvider | undefined; /** False, or a thrown error, revokes this operation without permitting fallback. */ readonly canContinue: () => boolean; /** Legacy failure-spending control; does not prevent fallback when no primary was resolved. */ readonly allowFailureFallback?: boolean; } /** * Execute a captured primary and optional final fallback without registry or credential access. * The caller resolves Auto, handles disabled policy, proves registrations and supplies lifetime guards. * Generic providers must honor the signal; this helper cannot inspect their internal auth/HTTP boundary. */ export declare function routeSearchTools(request: WebSearchRequest, signal: AbortSignal | undefined, deps: SearchToolRoutingDependencies): Promise; //# sourceMappingURL=search-tool-routing.d.ts.map