<?php

namespace LakeDrops\Component\Composer;

/**
 * Interface for BaseHandler.
 *
 * @package LakeDrops\Component\Composer
 */
interface BaseHandlerInterface {

  /**
   * Look up the Drupal core package object.
   *
   * @return \Composer\Package\PackageInterface
   *   The Drupal core package.
   */
  public function getDrupalCorePackage();

  /**
   * Retrieve a package from the current composer process.
   *
   * @param string $name
   *   Name of the package to get from the current composer installation.
   *
   * @return \Composer\Package\PackageInterface
   *   The package.
   */
  public function getPackage($name);

  /**
   * Determine if the current process runs in a CI/CD context.
   *
   * @return bool
   */
  public function isCiContext();

  /**
   * Wrapper for git command in the root directory.
   *
   * @param string $command
   *   Git command name, arguments and/or options.
   */
  public function git($command);

}