import { Observable, SchedulerLike } from 'rxjs'; import { ISourceCache } from '../ISourceCache'; import { MonoTypeChangeSetOperatorFunction } from '../ChangeSetOperatorFunction'; /** * Automatically removes items from the cache after the time specified by * the time selector elapses. * @typeparam TObject The type of the object. * @typeparam TKey The type of the key. * @param cache The cache * @param timeSelector The time selector. Return null if the item should never be removed * @param interval The polling interval. Since multiple timer subscriptions can be expensive, it may be worth setting the interval. * @param scheduler The scheduler. */ export declare function expireAfter(cache: ISourceCache, timeSelector: (value: TObject) => number | undefined, interval?: number, scheduler?: SchedulerLike): Observable>; /** * Automatically removes items from the cache after the time specified by * the time selector elapses. * @typeparam TObject The type of the object. * @typeparam TKey The type of the key. * @param timeSelector The time selector. Return null if the item should never be removed * @param scheduler The scheduler. */ export declare function expireAfter(timeSelector: (value: TObject) => number | undefined, scheduler?: SchedulerLike): MonoTypeChangeSetOperatorFunction; /** * Automatically removes items from the cache after the time specified by * the time selector elapses. * @typeparam TObject The type of the object. * @typeparam TKey The type of the key. * @param cache The cache * @param timeSelector The time selector. Return null if the item should never be removed * @param scheduler The scheduler. */ export declare function expireAfter(cache: ISourceCache, timeSelector: (value: TObject) => number | undefined, scheduler?: SchedulerLike): Observable>; /** * Automatically removes items from the cache after the time specified by * the time selector elapses. * @typeparam TObject The type of the object. * @typeparam TKey The type of the key. * @param timeSelector The time selector. Return null if the item should never be removed * @param interval The polling interval. Since multiple timer subscriptions can be expensive, it may be worth setting the interval. * @param scheduler The scheduler. */ export declare function expireAfter(timeSelector: (value: TObject) => number | undefined, interval?: number, scheduler?: SchedulerLike): MonoTypeChangeSetOperatorFunction;