import { Observable } from 'rxjs';
import type { TPresenceEntry } from '../routes/presence/schema';
export type PresenceRoom = Map<string, TPresenceEntry>;
export declare class PresenceService {
    private readonly rooms;
    private readonly observers;
    update(roomId: string, entryId: string, ttl: number, data: unknown): Promise<TPresenceEntry>;
    remove(roomId: string, entryId: string): Promise<void>;
    listen$(roomId: string): Observable<TPresenceEntry[]>;
    private getRoom;
    private cleanUpRoom;
    stats(): {
        rooms: number;
        entries: number;
        observers: number;
    };
}
