///
import { ThreadPoolHandler } from '@ironfish/rust-nodejs';
import { Logger } from '../logger';
import { Meter } from '../metrics/meter';
import { RpcSocketClient } from '../rpc/clients/socketClient';
import { SetTimeoutToken } from '../utils/types';
export declare class MiningSoloMiner {
readonly hashRate: Meter;
readonly threadPool: ThreadPoolHandler;
readonly logger: Logger;
readonly rpc: RpcSocketClient;
private started;
private stopPromise;
private stopResolve;
private connectWarned;
private connectTimeout;
private nextMiningRequestId;
private miningRequestBlocks;
private miningRequestId;
private consensus;
private currentHeadTimestamp;
private currentHeadDifficulty;
graffiti: Buffer;
target: Buffer;
waiting: boolean;
recalculateTargetInterval: SetTimeoutToken | null;
constructor(options: {
threadCount: number;
batchSize: number;
logger: Logger;
graffiti: Buffer;
rpc: RpcSocketClient;
fishHashFullContext: boolean;
});
start(): void;
stop(): void;
waitForStop(): Promise;
waitForWork(): void;
private onDisconnectRpc;
private processNewBlocks;
private startNewWork;
private mine;
submitWork(miningRequestId: number, randomness: string, graffiti: Buffer): Promise;
private startConnectingRpc;
private recalculateTarget;
private restartCalculateTargetInterval;
}
//# sourceMappingURL=soloMiner.d.ts.map