import { type alamos } from "@synnaxlabs/alamos";
import { type framer, type channel } from "@synnaxlabs/client";
import { type TimeRange } from "@synnaxlabs/x";
import { type CacheManager } from './cacheManager';
import { ReadResponse } from './types';
export type ReadRemoteFunc = (tr: TimeRange, keys: channel.Keys) => Promise<framer.Frame>;
export declare class Reader {
    private readonly ins;
    private readonly cache;
    private readonly readRemote;
    private readonly mu;
    private readonly readRequests;
    private readonly debouncedRead;
    constructor(cache: CacheManager, fetcher: ReadRemoteFunc, ins: alamos.Instrumentation);
    private batchRead;
    /** Implements ReadClient. */
    read(tr: TimeRange, channels: channel.Keys): Promise<Record<channel.Key, ReadResponse>>;
}
