import type { Citation, EvidenceItem, SearchInput, SearchOutput, SearchResultItem, SourceSpan } from '../types.js';
export interface BuildEvidenceOptions {
    maxTokensOut?: number;
    maxItems?: number;
}
export declare function buildEvidenceFromMarkdown(query: string, title: string, url: string, markdown: string, opts?: BuildEvidenceOptions): Promise<EvidenceItem[]>;
export declare function applyAggregateMarkdownBudget<T>(items: T[], getBody: (item: T) => string, setBody: (item: T, body: string) => void, opts: {
    maxTokensOut?: number;
    maxChars?: number;
}): void;
export declare function applyTokenBudget(items: EvidenceItem[], maxTokensOut: number): EvidenceItem[];
export declare function stableCitationId(url: string, start: number): string;
export declare function buildEvidenceItem(input: {
    title: string;
    url: string;
    sectionHeading: string | null;
    excerpt: string;
    score: number;
    sourceSpan: SourceSpan;
}): EvidenceItem;
export declare function applyEvidenceDefault(input: SearchInput, output: SearchOutput, results: SearchResultItem[], query: string): Promise<void>;
export declare function buildCitationsFromEvidence(results: SearchResultItem[], evidence: EvidenceItem[], baseCitations: Citation[]): Citation[];
export declare function renderCitationsXml(citations: Citation[]): string;
export declare function escapeXml(s: string): string;
//# sourceMappingURL=evidence.d.ts.map