/// <reference types="node" />
/// <reference types="node" />
import { Connection } from '@solana/web3.js';
import { EventEmitter } from 'events';
import StrictEventEmitter from 'strict-event-emitter-types/types/src';
type SlotSubscriberConfig = {
    resubTimeoutMs?: number;
};
export interface SlotSubscriberEvents {
    newSlot: (newSlot: number) => void;
}
export declare class SlotSubscriber {
    private connection;
    currentSlot: number;
    subscriptionId: number;
    eventEmitter: StrictEventEmitter<EventEmitter, SlotSubscriberEvents>;
    timeoutId?: NodeJS.Timeout;
    resubTimeoutMs?: number;
    isUnsubscribing: boolean;
    receivingData: boolean;
    constructor(connection: Connection, config?: SlotSubscriberConfig);
    subscribe(): Promise<void>;
    private setTimeout;
    getSlot(): number;
    unsubscribe(onResub?: boolean): Promise<void>;
}
export {};
//# sourceMappingURL=SlotSubscriber.d.ts.map