<?php

// Copyright (c) 2020 Laminas Project a Series of LF Projects, LLC.
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
//
// - Redistributions of source code must retain the above copyright notice, this
//   list of conditions and the following disclaimer.
//
// - Redistributions in binary form must reproduce the above copyright notice,
//   this list of conditions and the following disclaimer in the documentation
//   and/or other materials provided with the distribution.
//
// - Neither the name of Laminas Foundation nor the names of its contributors may
//   be used to endorse or promote products derived from this software without
//   specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
// ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

declare(strict_types=1);

namespace App\Contracts\Laminas;

/**
 * Interface for Laminas\Text\Table decorators.
 */
interface DecoratorInterface
{
	/**
	 * Get a single character for the top left corner.
	 */
	public function getTopLeft(): string;

	/**
	 * Get a single character for the top right corner.
	 */
	public function getTopRight(): string;

	/**
	 * Get a single character for the bottom left corner.
	 */
	public function getBottomLeft(): string;

	/**
	 * Get a single character for the bottom right corner.
	 */
	public function getBottomRight(): string;

	/**
	 * Get a single character for a vertical line.
	 */
	public function getVertical(): string;

	/**
	 * Get a single character for a horizontal line.
	 */
	public function getHorizontal(): string;

	/**
	 * Get a single character for a crossing line.
	 */
	public function getCross(): string;

	/**
	 * Get a single character for a vertical divider right.
	 */
	public function getVerticalRight(): string;

	/**
	 * Get a single character for a vertical divider left.
	 */
	public function getVerticalLeft(): string;

	/**
	 * Get a single character for a horizontal divider down.
	 */
	public function getHorizontalDown(): string;

	/**
	 * Get a single character for a horizontal divider up.
	 */
	public function getHorizontalUp(): string;
}
