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

interface Builder
{
    /**
     * @param string $table_name
     * @return Create
     */
    public function create(string $table_name): Create;

    /**
     * @param string|array $columns
     * @return Select
     */
    public function select(string|array $columns = '*'): Select;

    /**
     * @return Insert
     */
    public function insert(): Insert;

    /**
     * @param string $table
     * @return Update
     */
    public function update(string $table): Update;

    /**
     * @return Delete
     */
    public function delete(): Delete;
}
