import { P2P } from '@shardeum-foundation/lib-types';
/** CycleCreator Functions */
/**
 * Gets called once when the CycleCreator system is initialized
 */
export declare function init(): void;
/**
 * This gets called before start of Q1
 */
export declare function reset(): void;
/**
 * This gets called at the start of Q3.
 * @returns CycleTxs specific to this cycle module
 */
export declare function getTxs(): P2P.LostArchiverTypes.Txs;
/**
 * This gets called during Q3 after getTxs.
 * @param txs CycleTxs specific to this cycle module
 * @returns An object containing only valid txs for this cycle module
 */
export declare function dropInvalidTxs(txs: P2P.LostArchiverTypes.Txs): P2P.LostArchiverTypes.Txs;
/**
 * This gets called during Q3 after dropInvalidTxs.
 * Given the txs and prev cycle record mutate the referenced record.
 * @param txs CycleTxs specific to this cycle module
 * @param record A reference to the currently being created Cycle Record
 * @param prev A reference to the previously created Cycle Record
 */
export declare function updateRecord(txs: P2P.LostArchiverTypes.Txs, record: P2P.CycleCreatorTypes.CycleRecord, prev: P2P.CycleCreatorTypes.CycleRecord): void;
/**
 * This is called after Q4 of the prev cycle and before Q1 of the next cycle by CycleCreator
 * @param record The latest create Cycle Record
 * @returns A Change describing an addition, removal, or update from the Nodelist
 */
export declare function parseRecord(record: P2P.CycleCreatorTypes.CycleRecord): P2P.CycleParserTypes.Change;
export declare function queueRequest(request: any): void;
/**
 * This is called once per cycle at the start of Q1 by CycleCreator.
 */
export declare function sendRequests(): void;
export declare function validateRecordTypes(rec: P2P.ActiveTypes.Record): string;
