import { type CandidateOmissionReason } from "@oscharko-dev/keiko-contracts/connected-context";
import { type FilterOptions, type FilterResult } from "./filter.js";
import { type ScoringWeights } from "./scoring.js";
import { type RankingInput } from "./signals.js";
export interface RankingOptions {
    readonly weights?: ScoringWeights;
    readonly filter?: Omit<FilterOptions, "nowMs">;
    readonly nowMs?: () => number;
}
export interface RankingDiagnostics {
    readonly totalAtoms: number;
    readonly uniqueCandidates: number;
    readonly keptCount: number;
    readonly omittedCounts: Readonly<Record<CandidateOmissionReason, number>>;
    readonly elapsedMs: number;
}
export interface RankingResult extends FilterResult {
    readonly diagnostics: RankingDiagnostics;
}
export declare function rankCandidates(input: RankingInput, options?: RankingOptions): RankingResult;
//# sourceMappingURL=rank.d.ts.map