interface EvictStarted {
    status: 'Started';
}
interface EvictRunning {
    status: 'Running';
    message: string;
}
interface BatchEvicted {
    status: 'Evicted';
    skippedEntries: string[];
    evictedEntries: string[];
}
interface EvictSucceeded {
    status: 'Succeeded';
}
interface EvictError {
    status: 'Error';
    message: string;
}
interface EvictCancelled {
    status: 'Canceled';
}
export type EvictProgress = BatchEvicted | EvictSucceeded | EvictError | EvictCancelled;
export type ProgressUpdateCallback = (progess: EvictProgress) => void;
/**
 * Purging records specified by an array of record id from durable store
 * @param recordIds record id array
 * @onProgressUpdate call back to report evict progress
 *
 * @returns started or already running based whether there's an active eviction going on or not.
 *
 * The record will not be purged if the record has draft.
 */
export declare function evictCacheRecordsByIds(recordIds: string[], onProgressUpdate: ProgressUpdateCallback): EvictStarted | EvictRunning;
/**
 * Purging the db entries which passed expired time by specified days
 * from durable store.
 * @param expiredByDays
 * @param onProgressUpdate
 *
 * @returns started or already running based whether there's an active eviction going on or not.
 *
 * Important: records with draft, objectInfo entries will not be purged even expired by the specified days.
 */
export declare function evictExpiredCacheEntries(expiredByDays: number, onProgressUpdate: ProgressUpdateCallback): EvictStarted | EvictRunning;
/**
 * Signal to stop current eviction if there's an active eviction going on.
 */
export declare function stopEviction(): void;
export {};
