import type { RawSearchResult } from '../../types.js';
import { type Vertical } from './intent-router.js';
import { type EngineOutcome } from './engine-base.js';
import { type TimeRange } from './time-range.js';
export interface OrchestratorInput {
    query: string;
    category?: Vertical;
    fromDate?: string;
    toDate?: string;
    maxResults?: number;
    timeoutMs?: number;
    language?: string;
    includeDomains?: string[];
    excludeDomains?: string[];
    /** When true, each returned result carries a `_score_breakdown` field.
     * Wired from SearchInput.include_engine_outcomes at the provider layer. */
    includeScoreBreakdown?: boolean;
    /** ISO 3166-1 alpha-2 country code. Threaded to engines that support a
     * geographic boost; advisory, not a strict filter. */
    country?: string;
    /** Caller-supplied freshness window. Overrides any date hint inferred
     * from the query text. Resolved to a `fromDate` relative to now and
     * passed to engines; results older than the window are post-filtered
     * out (unless they have no published_date — kept conservatively). */
    timeRange?: TimeRange;
    /** When true, the query is wrapped in double quotes before dispatch
     * (engines that honour `"..."` treat it as a phrase match) and any
     * result whose title+snippet does not contain the unquoted query as a
     * case-insensitive substring is dropped post-rerank. */
    exactMatch?: boolean;
}
export interface OrchestratorOutput {
    vertical: Vertical;
    results: RawSearchResult[];
    enginesUsed: string[];
    outcomes: EngineOutcome[];
    degraded: boolean;
}
interface RunV1SearchOptions {
    _isFallback?: boolean;
}
export declare function runV1Search(input: OrchestratorInput, opts?: RunV1SearchOptions): Promise<OrchestratorOutput>;
export declare function _resetOrchestratorVerticalsForTest(): void;
export {};
//# sourceMappingURL=orchestrator.d.ts.map