import { CommonCoreConfig, StreamConfig, StreamType } from "../types.js"; import { SegmentStorage } from "./index.js"; export declare class SegmentMemoryStorage implements SegmentStorage { private readonly userAgent; private segmentMemoryStorageLimit; private currentStorageUsage; private cache; private readonly logger; private coreConfig?; private mainStreamConfig?; private secondaryStreamConfig?; private currentPlayback?; private lastRequestedSegment?; private segmentChangeCallback?; constructor(); initialize(coreConfig: CommonCoreConfig, mainStreamConfig: StreamConfig, secondaryStreamConfig: StreamConfig): Promise; onPlaybackUpdated(position: number, rate: number): void; onSegmentRequested(swarmId: string, streamId: string, segmentId: number, startTime: number, endTime: number, streamType: StreamType, isLiveStream: boolean): void; storeSegment(_swarmId: string, streamId: string, segmentId: number, data: ArrayBuffer, startTime: number, endTime: number, streamType: StreamType, isLiveStream: boolean): Promise; getSegmentData(_swarmId: string, streamId: string, segmentId: number): Promise; getUsage(): { totalCapacity: number; usedCapacity: number; }; hasSegment(_swarmId: string, streamId: string, externalId: number): boolean; getStoredSegmentIds(_swarmId: string, streamId: string): number[]; private clear; private isMemoryLimitReached; setSegmentChangeCallback(callback: (streamId: string) => void): void; private sendUpdatesToAffectedStreams; private shouldRemoveSegment; private increaseStorageUsage; private decreaseStorageUsage; private setMemoryStorageLimit; private getStreamTimeWindow; destroy(): void; }