import { AbstractService } from '../../common/AbstractService.ts';
import type { ChangesStreamTaskData } from '../entity/Task.ts';
export type UpstreamRegistryInfo = {
    registry_name: string;
    source_registry: string;
    changes_stream_url: string;
} & ChangesStreamTaskData;
export interface DownloadInfo {
    today: number;
    yesterday: number;
    samedayLastweek: number;
    thisweek: number;
    thismonth: number;
    thisyear: number;
    lastweek: number;
    lastmonth: number;
    lastyear: number;
}
export interface TotalData {
    packageCount: number;
    packageVersionCount: number;
    lastPackage: string;
    lastPackageVersion: string;
    download: DownloadInfo;
    changesStream: ChangesStreamTaskData;
    lastChangeId: number | bigint;
    cacheTime: string;
    upstreamRegistries: UpstreamRegistryInfo[];
}
export declare class CacheService extends AbstractService {
    private cacheAdapter;
    getPackageEtag(fullname: string, isFullManifests: boolean): Promise<string | null>;
    getPackageManifests(fullname: string, isFullManifests: boolean): Promise<Buffer<ArrayBufferLike> | null>;
    savePackageEtagAndManifests(fullname: string, isFullManifests: boolean, etag: string, manifests: Buffer): Promise<void>;
    getTotalData(): Promise<TotalData>;
    saveTotalData(totalData: TotalData): Promise<void>;
    removeCache(fullname: string): Promise<void>;
    private cacheKey;
}
