import { ChainForkConfig } from "@lodestar/config";
import { BeaconStateAllForks, CachedBeaconStateAllForks } from "@lodestar/state-transition";
import { SignedBeaconBlock } from "@lodestar/types";
import { Logger } from "@lodestar/utils";
import { IBeaconDb } from "../db/index.js";
import { Eth1Options } from "../eth1/options.js";
import { Metrics } from "../metrics/index.js";
import { GenesisResult } from "./genesis/interface.js";
export declare function persistGenesisResult(db: IBeaconDb, genesisResult: GenesisResult, genesisBlock: SignedBeaconBlock): Promise<void>;
export declare function persistAnchorState(config: ChainForkConfig, db: IBeaconDb, anchorState: BeaconStateAllForks, anchorStateBytes: Uint8Array): Promise<void>;
export declare function createGenesisBlock(config: ChainForkConfig, genesisState: BeaconStateAllForks): SignedBeaconBlock;
/**
 * Initialize and persist a genesis state and related data
 */
export declare function initStateFromEth1({ config, db, logger, opts, signal, }: {
    config: ChainForkConfig;
    db: IBeaconDb;
    logger: Logger;
    opts: Eth1Options;
    signal: AbortSignal;
}): Promise<CachedBeaconStateAllForks>;
/**
 * Restore the latest beacon state from db
 */
export declare function initStateFromDb(_config: ChainForkConfig, db: IBeaconDb, logger: Logger): Promise<BeaconStateAllForks>;
/**
 * Initialize and persist an anchor state (either weak subjectivity or genesis)
 */
export declare function checkAndPersistAnchorState(config: ChainForkConfig, db: IBeaconDb, logger: Logger, anchorState: BeaconStateAllForks, anchorStateBytes: Uint8Array, { isWithinWeakSubjectivityPeriod, isCheckpointState, }: {
    isWithinWeakSubjectivityPeriod: boolean;
    isCheckpointState: boolean;
}): Promise<void>;
export declare function initBeaconMetrics(metrics: Metrics, state: BeaconStateAllForks): void;
//# sourceMappingURL=initState.d.ts.map