<?php

namespace Drupal\Core\Entity;

interface RevisionableStorageInterface extends EntityStorageInterface {

  /**
   * @param int|numeric-string|string $revision_id
   * @return \Drupal\Core\Entity\RevisionableInterface|null
   */
  public function loadRevision($revision_id);

  /**
   * @param int|numeric-string|string $revision_id
   */
  public function deleteRevision($revision_id): void;
  
  /**
   * @param R $entity
   * @return R
   * @template R of \Drupal\Core\Entity\RevisionableInterface
   */
  public function createRevision(RevisionableInterface $entity, bool $default = TRUE);

}
