import { P2P } from '@shardeum-foundation/lib-types';
import { OpaqueTransaction } from '../shardus/shardus-types';
/** FUNCTIONS */
/** CycleCreator Functions */
export declare function init(): void;
export declare function reset(): void;
export declare function getTxs(): P2P.ServiceQueueTypes.Txs;
export declare function validateRecordTypes(): string;
export declare function updateRecord(txs: P2P.ServiceQueueTypes.Txs, record: P2P.CycleCreatorTypes.CycleRecord, prev: P2P.CycleCreatorTypes.CycleRecord): void;
export declare function parseRecord(record: P2P.CycleCreatorTypes.CycleRecord): P2P.CycleParserTypes.Change;
export declare function sendRequests(): void;
/** Module Functions */
export declare function containsTx(txHash: string): boolean;
export declare function containsTxData(txData: OpaqueTransaction): boolean;
export declare function registerShutdownHandler(type: string, handler: (activeNode: P2P.NodeListTypes.Node, record: P2P.CycleCreatorTypes.CycleRecord) => Omit<P2P.ServiceQueueTypes.AddNetworkTx, 'cycle' | 'hash'> | null | undefined): void;
export declare function registerBeforeAddVerifier(type: string, verifier: (txEntry: P2P.ServiceQueueTypes.AddNetworkTx) => Promise<boolean>): void;
export declare function registerApplyVerifier(type: string, verifier: (txEntry: P2P.ServiceQueueTypes.AddNetworkTx) => Promise<boolean>): void;
export declare function addNetworkTx(type: string, tx: OpaqueTransaction, subQueueKey?: string, priority?: number): Promise<void>;
export declare function getLatestNetworkTxEntryForSubqueueKey(subqueueKey: string): P2P.ServiceQueueTypes.NetworkTxEntry;
export declare function _removeNetworkTx(removeTx: P2P.ServiceQueueTypes.RemoveNetworkTx): Promise<boolean>;
export declare function processNetworkTransactions(record: P2P.CycleCreatorTypes.CycleRecord): Promise<void>;
export declare function syncTxListFromArchiver(): Promise<void>;
export declare function getTxListHash(): string;
export declare function getTxList(): Array<P2P.ServiceQueueTypes.NetworkTxEntry>;
export declare function setTxList(_txList: P2P.ServiceQueueTypes.NetworkTxEntry[]): void;
