import { LevelDbControllerMetrics } from "@lodestar/db";
import { CheckpointStateRepository } from "./repositories/checkpointState.js";
import { AttesterSlashingRepository, BLSToExecutionChangeRepository, BackfilledRanges, BestLightClientUpdateRepository, BlobSidecarsArchiveRepository, BlobSidecarsRepository, BlockArchiveRepository, BlockRepository, CheckpointHeaderRepository, DataColumnSidecarArchiveRepository, DataColumnSidecarRepository, ExecutionPayloadEnvelopeArchiveRepository, ExecutionPayloadEnvelopeRepository, ProposerSlashingRepository, StateArchiveRepository, SyncCommitteeRepository, SyncCommitteeWitnessRepository, VoluntaryExitRepository } from "./repositories/index.js";
/**
 * The DB service manages the data layer of the beacon chain
 * The exposed methods do not refer to the underlying data engine,
 * but instead expose relevant beacon chain objects
 */
export interface IBeaconDb {
    block: BlockRepository;
    blockArchive: BlockArchiveRepository;
    blobSidecars: BlobSidecarsRepository;
    blobSidecarsArchive: BlobSidecarsArchiveRepository;
    dataColumnSidecar: DataColumnSidecarRepository;
    dataColumnSidecarArchive: DataColumnSidecarArchiveRepository;
    executionPayloadEnvelope: ExecutionPayloadEnvelopeRepository;
    executionPayloadEnvelopeArchive: ExecutionPayloadEnvelopeArchiveRepository;
    stateArchive: StateArchiveRepository;
    checkpointState: CheckpointStateRepository;
    voluntaryExit: VoluntaryExitRepository;
    proposerSlashing: ProposerSlashingRepository;
    attesterSlashing: AttesterSlashingRepository;
    blsToExecutionChange: BLSToExecutionChangeRepository;
    bestLightClientUpdate: BestLightClientUpdateRepository;
    checkpointHeader: CheckpointHeaderRepository;
    syncCommittee: SyncCommitteeRepository;
    syncCommitteeWitness: SyncCommitteeWitnessRepository;
    backfilledRanges: BackfilledRanges;
    pruneHotDb(): Promise<void>;
    deleteDeprecatedEth1Data(): Promise<void>;
    /**  Close the connection to the db instance and close the db store. */
    close(): Promise<void>;
    /** To inject metrics after CLI initialization */
    setMetrics(metrics: LevelDbControllerMetrics): void;
}
//# sourceMappingURL=interface.d.ts.map