import { LoggerNode } from "@lodestar/logger/node";
import { Checkpoint } from "@lodestar/types/phase0";
import { IBeaconDb } from "../../db/index.js";
import { Metrics } from "../../metrics/metrics.js";
import { IBeaconChain } from "../interface.js";
import { ArchiveStoreOpts } from "./interface.js";
type ArchiveStoreModules = {
    chain: IBeaconChain;
    db: IBeaconDb;
    logger: LoggerNode;
    metrics: Metrics | null;
};
type ArchiveStoreInitOpts = ArchiveStoreOpts & {
    dbName: string;
    anchorState: {
        finalizedCheckpoint: Checkpoint;
    };
};
/**
 * Used for running tasks that depends on some events or are executed
 * periodically.
 */
export declare class ArchiveStore {
    private archiveMode;
    private jobQueue;
    private archiveBlobEpochs?;
    private readonly statesArchiverStrategy;
    private readonly chain;
    private readonly db;
    private readonly logger;
    private readonly metrics;
    private readonly opts;
    private readonly signal;
    private historicalStateRegen?;
    constructor(modules: ArchiveStoreModules, opts: ArchiveStoreInitOpts, signal: AbortSignal);
    init(): Promise<void>;
    close(): Promise<void>;
    scrapeMetrics(): Promise<string>;
    getHistoricalStateBySlot(slot: number): Promise<{
        state: Uint8Array;
        executionOptimistic: boolean;
        finalized: boolean;
    } | null>;
    /**
     * Archive latest finalized state
     * */
    persistToDisk(): Promise<void>;
    private onFinalizedCheckpoint;
    private onCheckpoint;
    private processFinalizedCheckpoint;
}
export {};
//# sourceMappingURL=archiveStore.d.ts.map