import { type MergedSearchResult } from '../search/dedup.js';
import type { AgentPlan } from './planner.js';
import type { AgentSource, AgentStep, SearchEngine } from '../types.js';
import type { SmartRouter } from '../fetch/router.js';
export interface AgentSourceLike {
    url: string;
    title: string;
    body?: string;
    snippet?: string;
}
export interface ScoreFilterOptions {
    threshold: number;
}
export interface ExcludedSource<T extends AgentSourceLike = AgentSourceLike> {
    source: T;
    score: number;
    excluded_reason: string;
}
export declare function agentSourcesToSearchResults(sources: AgentSourceLike[]): MergedSearchResult[];
export declare function scoreAndFilterSources<T extends AgentSourceLike>(prompt: string, sources: T[], opts: ScoreFilterOptions): Promise<{
    kept: T[];
    excluded: ExcludedSource<T>[];
}>;
export interface ExecutionBudget {
    maxPages: number;
    deadlineMs: number;
}
export interface ExecutionResult {
    sources: AgentSource[];
    steps: AgentStep[];
}
export declare function executeAgentPlan(plan: AgentPlan, engines: SearchEngine[], router: SmartRouter, budget: ExecutionBudget, prompt?: string): Promise<ExecutionResult>;
//# sourceMappingURL=executor.d.ts.map