/** Keep only the handles each in-flight reader actually obtained. */
export declare function indexReaders<T>(current: () => T, close: (handle: T) => void): {
    get(): T;
    retire(handle: T): void;
    run<R>(fn: () => R | Promise<R>): Promise<R>;
};
/** Coalesce local freshness checks without a timer or any remote polling. */
export declare function localIndexRefresh(options: {
    isFresh: () => boolean;
    refresh: () => Promise<void>;
    runExclusive: (fn: () => Promise<void>) => Promise<unknown>;
    now?: () => number;
    intervalMs?: number;
}): {
    ensureFresh: () => Promise<void>;
};
