///
///
import { Cache, Lock, NotificationEmitter } from "./Cache.js";
import { Redis } from "ioredis";
import { StreamMetadataWrapper } from "../models.js";
import { Duration } from "durr";
import { BasePayload, ClientEvents, JobQueue, WorkerEvents } from "../job";
import EventEmitter from "events";
export declare class RedisCache implements Cache {
private readonly redis;
constructor(redis: Redis);
mkJobQueue = ClientEvents, Worker extends WorkerEvents = WorkerEvents>(id: string): Promise>;
expireStreamMetadata(streamId: string, expiration: Date): Promise;
expireSegmentM4s(streamId: string, segmentId: number, expiration: Date): Promise;
expireInitMp4(streamId: string, expiration: Date): Promise;
getStreamMetadata(streamId: string): Promise;
putStreamMetadata(streamId: string, m3u8: StreamMetadataWrapper, expiration: Date): Promise;
delStreamMetadata(streamId: string): Promise;
getInitMp4(streamId: string): Promise;
putInitMp4(streamId: string, initMp4: Buffer, expiration: Date): Promise;
delInitMp4(streamId: string): Promise;
getSegmentM4s(streamId: string, segmentId: number): Promise;
putSegmentM4s(streamId: string, segmentId: number, segment: Buffer, expiration: Date): Promise;
delSegmentM4s(streamId: string, segmentId: number): Promise;
expireImage(imageId: string, seconds: number): Promise;
getImage(imageId: string): Promise;
putImage(imageId: string, image: Buffer, expirationSecs: number): Promise;
delImage(imageId: string): Promise;
get(key: string): Promise;
del(key: string): Promise;
put(key: string, value: string, expiration: Date): Promise;
getPut(key: string, value: string, expiration: Date): Promise;
tryAcquire(key: string, timeout: Duration): Promise;
pub(key: string, value: string): Promise;
sub(key: string): Promise;
}
export declare class RedisNotificationEmitter extends EventEmitter {
private conn;
close(): Promise;
constructor(conn: Redis);
}
//# sourceMappingURL=RedisCache.d.ts.map