///
import Decimal from 'decimal.js';
import { Blockchain } from '../blockchain';
import { Consensus } from '../consensus';
import { Logger } from '../logger';
import { MemPool } from '../memPool';
import { Block, Transaction } from '../primitives';
export interface FeeRateEntry {
feeRate: bigint;
blockHash: Buffer;
}
export interface BlockSizeEntry {
blockSize: number;
blockHash: Buffer;
}
export type PriorityLevel = typeof PRIORITY_LEVELS[number];
export type PriorityLevelPercentiles = {
slow: number;
average: number;
fast: number;
};
export declare const PRIORITY_LEVELS: readonly ["slow", "average", "fast"];
export declare const BLOCK_SIZE: "blockSize";
export declare class FeeEstimator {
private queues;
private percentiles;
private readonly logger;
private maxBlockHistory;
private defaultFeeRate;
readonly minFeeRate: bigint;
private consensus;
constructor(options: {
consensus: Consensus;
maxBlockHistory?: number;
minFeeRate?: bigint;
logger?: Logger;
percentiles?: PriorityLevelPercentiles;
});
init(chain: Blockchain): Promise;
onConnectBlock(block: Block, memPool: MemPool): void;
onDisconnectBlock(block: Block): void;
private getTransactionFeeRates;
estimateFeeRates(): {
slow: bigint;
average: bigint;
fast: bigint;
};
estimateFeeRate(priorityLevel: PriorityLevel): bigint;
size(priorityLevel: PriorityLevel): number | undefined;
private isFull;
}
export declare function getFee(feeRate: bigint, transactionSize: number): bigint;
export declare function getFeeRate(transaction: Transaction): bigint;
export declare function getPreciseFeeRate(transaction: Transaction): Decimal;
//# sourceMappingURL=feeEstimator.d.ts.map