import { type CandidateFile, type ConnectedContextPack, type EvidenceAtom, type ExplorationBudget, type ExplorationUsage, type OmittedContextEntry, type RetrievalQuery, type SelectedScope, type UncertaintyMarker } from "@oscharko-dev/keiko-contracts/connected-context";
import { type MicroIndex } from "./microIndex.js";
import { type RerankerSeam } from "./reranker.js";
export interface AssembleInput {
    readonly scope: SelectedScope;
    readonly query: RetrievalQuery;
    readonly budget: ExplorationBudget;
    readonly atoms: readonly EvidenceAtom[];
    readonly ranked: readonly CandidateFile[];
    readonly omittedFromRanking: readonly OmittedContextEntry[];
    readonly excerpts: ReadonlyMap<string, ExcerptSource>;
    readonly initialUsage?: ExplorationUsage;
    readonly initialUncertainty?: readonly UncertaintyMarker[];
}
export interface ExcerptWindow {
    readonly startLine: number;
    readonly endLine: number;
    readonly content: string;
}
export type ExcerptSource = string | ExcerptWindow | readonly ExcerptWindow[];
export interface AssembleOptions {
    readonly maxBytesPerExcerpt?: number;
    readonly editablePaths?: ReadonlySet<string>;
    readonly reranker?: RerankerSeam;
    readonly microIndex?: MicroIndex;
    readonly nowMs?: () => number;
}
export interface AssembleResult {
    readonly pack: ConnectedContextPack;
    readonly fromIndex: boolean;
}
export declare function assembleContextPack(input: AssembleInput, options?: AssembleOptions): Promise<AssembleResult>;
//# sourceMappingURL=assemble.d.ts.map