/// /// import { StreamMetadataWrapper } from "../models.js"; import { Duration } from "durr"; import { BasePayload, ClientEvents, JobQueue, WorkerEvents } from "../job"; import EventEmitter from "events"; export interface Cache { mkJobQueue = ClientEvents, Worker extends WorkerEvents = WorkerEvents>(id: string): Promise>; getStreamMetadata(id: string): Promise; putStreamMetadata(id: string, m3u8: StreamMetadataWrapper, expiration: Date): Promise; delStreamMetadata(id: string): Promise; expireStreamMetadata(id: string, expiration: Date): Promise; getSegmentM4s(streamId: string, segmentId: number): Promise; putSegmentM4s(streamId: string, segmentId: number, segment: Buffer, expiration: Date): Promise; delSegmentM4s(streamId: string, segmentId: number): Promise; expireSegmentM4s(streamId: string, segmentId: number, expiration: Date): Promise; getInitMp4(streamId: string): Promise; putInitMp4(streamId: string, initMp4: Buffer, expiration: Date): Promise; delInitMp4(streamId: string): Promise; expireInitMp4(id: string, expiration: Date): Promise; getImage(imageId: string): Promise; putImage(imageId: string, image: Buffer, expirationSecs: number): Promise; delImage(imageId: string): Promise; expireImage(imageId: string, seconds: number): Promise; put(key: string, value: string, expiration: Date): Promise; get(key: string): Promise; del(key: string): Promise; tryAcquire(key: string, timeout: Duration): Promise; pub(key: string, value: string): Promise; sub(key: string): Promise; } export interface SubEmitterEvents { readonly message: (value: string) => void; } export interface NotificationEmitter extends EventEmitter { on(event: U, listener: SubEmitterEvents[U]): this; emit(event: U, ...args: Parameters): boolean; } export declare class NotificationEmitter extends EventEmitter { close(): Promise; constructor(); } export interface Lock { readonly extend: (timeout: Duration) => Promise; readonly release: () => Promise; } //# sourceMappingURL=Cache.d.ts.map