import { DEFAULT_ARCHIVE_MODE } from "./archiveStore/constants.js";
import { ArchiveMode, ArchiveStoreOpts } from "./archiveStore/interface.js";
import { ForkChoiceOpts } from "./forkChoice/index.js";
import { LightClientServerOpts } from "./lightClient/index.js";
import { ShufflingCacheOpts } from "./shufflingCache.js";
import { FIFOBlockStateCacheOpts } from "./stateCache/fifoBlockStateCache.js";
import { PersistentCheckpointStateCacheOpts } from "./stateCache/persistentCheckpointsCache.js";
import { ValidatorMonitorOpts } from "./validatorMonitor.js";
export { ArchiveMode, DEFAULT_ARCHIVE_MODE };
export type IChainOptions = BlockProcessOpts & PoolOpts & SeenCacheOpts & ForkChoiceOpts & ArchiveStoreOpts & FIFOBlockStateCacheOpts & PersistentCheckpointStateCacheOpts & ShufflingCacheOpts & ValidatorMonitorOpts & LightClientServerOpts & {
    blsVerifyAllMainThread?: boolean;
    blsVerifyAllMultiThread?: boolean;
    blacklistedBlocks?: string[];
    persistProducedBlocks?: boolean;
    persistInvalidSszObjects?: boolean;
    persistInvalidSszObjectsDir?: string;
    persistOrphanedBlocks?: boolean;
    persistOrphanedBlocksDir?: string;
    skipCreateStateCacheIfAvailable?: boolean;
    suggestedFeeRecipient: string;
    maxSkipSlots?: number;
    /** Ensure blobs returned by the execution engine are valid */
    sanityCheckExecutionEngineBlobs?: boolean;
    /** Max number of produced blobs by local validators to cache */
    maxCachedBlobSidecars?: number;
    /** Max number of produced block roots (blinded or full) cached for broadcast validations */
    maxCachedProducedRoots?: number;
    initialCustodyGroupCount?: number;
    broadcastValidationStrictness?: string;
    minSameMessageSignatureSetsToBatch: number;
    archiveDateEpochs?: number;
    nHistoricalStatesFileDataStore?: boolean;
};
export type BlockProcessOpts = {
    /**
     * Do not use BLS batch verify to validate all block signatures at once.
     * Will double processing times. Use only for debugging purposes.
     */
    disableBlsBatchVerify?: boolean;
    /**
     * Assert progressive balances the same to EpochTransitionCache
     */
    assertCorrectProgressiveBalances?: boolean;
    /** Used for fork_choice spec tests */
    disableOnBlockError?: boolean;
    /** Used for fork_choice spec tests */
    disablePrepareNextSlot?: boolean;
    /**
     * Used to connect beacon in follow mode to an EL,
     * will still issue fcU for block proposal
     */
    disableImportExecutionFcU?: boolean;
    emitPayloadAttributes?: boolean;
    /**
     * Used to specify to specify to run verifications only and not
     * to save the block or log transitions for e.g. doing
     * broadcastValidation while publishing the block
     */
    verifyOnly?: boolean;
    /** Used to specify to skip execution payload validation */
    skipVerifyExecutionPayload?: boolean;
    /** Used to specify to skip block signatures validation */
    skipVerifyBlockSignatures?: boolean;
};
export type PoolOpts = {
    /**
     * Only preaggregate attestation/sync committee message since clockSlot - preaggregateSlotDistance
     */
    preaggregateSlotDistance?: number;
};
export type SeenCacheOpts = {
    /**
     * Slot distance from current slot to cache AttestationData
     */
    attDataCacheSlotDistance?: number;
};
export declare const defaultChainOptions: IChainOptions;
//# sourceMappingURL=options.d.ts.map