///
import { Event } from '../../../event';
import { Logger } from '../../../logger';
import { MiningNotifyMessage, MiningSetTargetMessage, MiningStatusMessage, MiningSubmittedMessage, MiningSubscribedMessageV3, StratumMessageWithError } from '../messages';
export declare abstract class StratumClient {
readonly logger: Logger;
readonly version: number;
private started;
private isClosing;
private id;
private connected;
private connectWarned;
private connectTimeout;
private nextMessageId;
private readonly messageBuffer;
private disconnectReason;
private disconnectUntil;
private disconnectVersion;
private disconnectMessage;
readonly onConnected: Event<[]>;
readonly onSubscribed: Event<[MiningSubscribedMessageV3]>;
readonly onSubmitted: Event<[MiningSubmittedMessage]>;
readonly onSetTarget: Event<[MiningSetTargetMessage]>;
readonly onNotify: Event<[MiningNotifyMessage]>;
readonly onWaitForWork: Event<[undefined]>;
readonly onStatus: Event<[MiningStatusMessage]>;
readonly onStratumError: Event<[StratumMessageWithError]>;
constructor(options: {
logger: Logger;
});
protected abstract connect(): Promise;
protected abstract writeData(data: string): void;
protected abstract close(): Promise;
start(): void;
private startConnecting;
stop(): void;
subscribe(publicAddress: string, name?: string): void;
submit(miningRequestId: number, randomness: string): void;
getStatus(publicAddress?: string): void;
isConnected(): boolean;
private send;
protected onConnect(): void;
protected onDisconnect: () => void;
protected onError: (error: unknown) => void;
protected onData(data: Buffer): Promise;
}
//# sourceMappingURL=client.d.ts.map