class RecordStorageEngine implements StorageEngine, Lifecycle {

    @Override
    public Collection<StoreFileMetadata> listStorageFiles()
    {
        List<StoreFileMetadata> files = new ArrayList<>();
        for ( StoreType type : StoreType.values() )
        {
            if ( type.equals( StoreType.COUNTS ) )
            {
                addCountStoreFiles( files );
            }
            else
            {
                final RecordStore<AbstractBaseRecord> recordStore = neoStores.getRecordStore( type );
                StoreFileMetadata metadata =
                        new StoreFileMetadata( recordStore.getStorageFile(), recordStore.getRecordSize() );
                files.add( metadata );
            }
        }
        return files;
    }

    public  RecordStorageEngine(
            DatabaseLayout databaseLayout,
            Config config,
            PageCache pageCache,
            FileSystemAbstraction fs,
            LogProvider logProvider,
            LogProvider userLogProvider,
            TokenHolders tokenHolders,
            SchemaState schemaState,
            ConstraintSemantics constraintSemantics,
            JobScheduler scheduler,
            TokenNameLookup tokenNameLookup,
            LockService lockService,
            IndexProviderMap indexProviderMap,
            IndexingService.Monitor indexingServiceMonitor,
            DatabaseHealth databaseHealth,
            ExplicitIndexProvider explicitIndexProvider,
            IndexConfigStore indexConfigStore,
            IdOrderingQueue explicitIndexTransactionOrdering,
            IdGeneratorFactory idGeneratorFactory,
            IdController idController,
            Monitors monitors,
            RecoveryCleanupWorkCollector recoveryCleanupWorkCollector,
            OperationalMode operationalMode,
            VersionContextSupplier versionContextSupplier );

}