import type { TrendItem } from "./schema.js";
/**
 * How well one trend fits the user's interests. Pure, side-effect free, and
 * order-independent so it's trivial to unit-test. 0 means "no interest match"
 * (also the value when no interests are configured).
 */
export declare function interestFitScore(item: TrendItem, interests: string[]): number;
/**
 * Return a NEW array of items ordered by interest fit (desc), then heat (desc).
 * Never mutates the input. With an empty interests list this degrades to a pure
 * heat sort (every fit score is 0), so callers always get a sensibly ordered list
 * even before the user has configured a niche.
 */
export declare function rankByInterests<T extends TrendItem>(items: T[], interests: string[]): T[];
//# sourceMappingURL=ranking.d.ts.map