import { type alamos } from "@synnaxlabs/alamos";
import { type channel, type Synnax } from "@synnaxlabs/client";
import { type AsyncDestructor } from "@synnaxlabs/x";
import { type CacheManager } from './cacheManager';
import { ReadResponse } from './types';
export type StreamHandler = (data: Record<channel.Key, ReadResponse>) => void;
export declare class Streamer {
    private readonly core;
    private readonly ins;
    private readonly mu;
    private readonly listeners;
    private readonly cache;
    private streamerRunLoop;
    private streamer;
    constructor(cache: CacheManager, core: Synnax, ins: alamos.Instrumentation);
    /** Implements StreamClient. */
    stream(handler: StreamHandler, keys: channel.Keys): Promise<AsyncDestructor>;
    private removeStreamHandler;
    private updateStreamer;
    private runStreamer;
    close(): Promise<void>;
}
