import { SmartDataDbDoc } from './classes.doc.js';
/**
 * Common TTL values in milliseconds for cache-like documents.
 */
export declare const smartdataTtlValues: {
    readonly HOURS_1: number;
    readonly HOURS_24: number;
    readonly DAYS_7: number;
    readonly DAYS_30: number;
    readonly DAYS_90: number;
};
/**
 * Base class for SmartData documents that should expire after an absolute date.
 */
export declare abstract class SmartdataCachedDocument<T extends SmartdataCachedDocument<T>> extends SmartDataDbDoc<T, T> {
    createdAt: Date;
    expiresAt?: Date;
    lastAccessedAt: Date;
    setTTL(ttlMs: number): void;
    setTTLDays(days: number): void;
    setTTLHours(hours: number): void;
    isExpired(): boolean;
    touch(): void;
    getRemainingTTL(): number;
    extendTTL(ttlMs: number): void;
    setNeverExpires(): void;
}
