import type { EvmLoadedMempoolTx, EvmLoadedMempoolTxWithProvider, EvmMempoolMemoryUsage, EvmMempoolProviderSnapshot, EvmMempoolReplacementCandidate, EvmMempoolStateSnapshotV2, EvmMempoolStateStore } from '../../../native';
import type { MempoolTxMetadata } from '../../../blockchain-provider/providers/interfaces';
export declare class JsEvmMempoolStateStore implements EvmMempoolStateStore {
    private hashToId;
    private idToHash;
    private providerTx;
    private metadataStore;
    private loadTracker;
    private nonceIndex;
    private nextId;
    applySnapshot(perProvider: EvmMempoolProviderSnapshot): void;
    addTransactions(perProvider: EvmMempoolProviderSnapshot, maxPendingCount: number): void;
    providers(): string[];
    pendingHashes(providerName: string, limit: number): string[];
    recordLoaded(loadedTransactions: EvmLoadedMempoolTxWithProvider[]): void;
    removeHash(hash: string): boolean;
    removeHashes(hashes: string[]): number;
    getReplacementCandidate(from: string, nonce: number): EvmMempoolReplacementCandidate | undefined;
    hashes(): Iterable<string>;
    metadata(): Iterable<MempoolTxMetadata>;
    loadedEntries(): Iterable<EvmLoadedMempoolTx>;
    hasTransaction(hash: string): boolean;
    isTransactionLoaded(hash: string): boolean;
    getTransactionMetadata(hash: string): MempoolTxMetadata | undefined;
    getStats(): {
        total: number;
        loaded: number;
        providers: number;
        nonceIndex: number;
    };
    pruneTtl(ttlMs: number, nowMs?: number): number;
    getMemoryUsage(units?: 'B' | 'KB' | 'MB' | 'GB'): EvmMempoolMemoryUsage;
    exportSnapshot(): EvmMempoolStateSnapshotV2;
    importSnapshot(state: any): void;
    dispose(): void;
    private clearWithoutShrink;
    private ensureId;
    private addProviderTx;
    private indexNonce;
    private evictLowestGas;
}
export declare function createEvmMempoolStateStore(): EvmMempoolStateStore;
