<?php
namespace Incoviba\Common\Define\Query;

use Incoviba\Common\Define;

interface Insert extends Define\Query
{
    /**
     * @param string $table
     * @param array|null $columns
     * @return Insert
     */
    public function into(string $table, ?array $columns = null): Insert;

    /**
     * @param array $columns
     * @return Insert
     */
    public function columns(array $columns): Insert;

    /**
     * @param array $values
     * @return Insert
     */
    public function values(array $values): Insert;

    /**
     * @param Select $select
     * @return Insert
     */
    public function select(Select $select): Insert;
}
