import Application from '../application';
import { IMsgRspEncode, IReceiveId, IRspData, IScheduleOpts } from '..';
export interface IBufferPushSchedulerOptions {
    flushInterval?: number;
}
export default class BufferPushScheduler {
    app: Application;
    sessions: {
        [sid: number]: IMsgRspEncode[];
    };
    private readonly flushInterval;
    private tid;
    constructor(app: Application, opts?: IBufferPushSchedulerOptions);
    start(): void;
    stop(): void;
    schedule(reqId: number, route: string, data: IRspData, sids: IReceiveId[], opts: IScheduleOpts): void;
    private flush;
    private doBroadcast;
    private doBatchPush;
    private enqueue;
    private onClose;
}
