import { Address, IChain, IChainWatch, ITransaction, QueryTxFilter, replayBlockCallback, Transaction } from "../../types";
import Keyv from "keyv";
import { Logger } from "winston";
export default abstract class BaseWatch implements IChainWatch {
readonly chain: IChain;
protected watchAddress: Map
;
protected pushHistory: Map;
protected cache: Keyv;
protected logger: Logger;
rpcLastBlockHeight: number;
getErrorTxList: Set;
set setRpcLastBlockHeight(height: number);
abstract readonly minConfirmations: number;
constructor(chain: IChain);
isWatchWalletAddress(address: string): Promise;
isWatchContractAddress(address: string): Promise;
isWatchTokenAddress(address: string): Promise;
isOrbiterXAddress(address: string): boolean;
abstract getApiFilter(address: Address): Promise;
init(): Promise;
addWatchAddress(address: Array | Address): this;
protected pushMessage(address: Address, txList: Array | Array): Promise;
protected pushBefore(address: Address, txList: Array): Promise<{
address: string;
txList: Transaction[];
}>;
protected pushAfter(address: Address, txList: Array): {
address: string;
txList: Transaction[];
};
apiWatchNewTransaction(_address: Address): Promise>;
apiScanCursor(address: Address, trx?: Partial): Promise | null>;
apiScan(): Promise;
updateScanStatus(methodsName: string): void;
abstract replayBlock(start: number, end: number, changeBlock?: replayBlockCallback): Promise<{
start: number;
end: number;
}>;
rpcScan(): Promise<{
start: number;
end: number;
}>;
}