<?php
/**
 * Option interface for implementing settings options.
 *
 * @package Awesomemotive\Rewardswp\Interfaces
 * @since 1.0.0
 */

namespace Awesomemotive\Rewardswp\Interfaces;

if ( ! defined( 'ABSPATH' ) ) {
	exit;
}

interface OptionInterface {
	/**
	 * Get the option name.
	 *
	 * @since 1.0.0
	 *
	 * @return string
	 */
	public function get_name(): string;

	/**
	 * Get the default value.
	 *
	 * @since 1.0.0
	 *
	 * @return mixed
	 */
	public function get_default_value();

	/**
	 * Get the current value.
	 *
	 * @since 1.0.0
	 *
	 * @return mixed
	 */
	public function get_value();

	/**
	 * Get the option label.
	 *
	 * @since 1.0.0
	 *
	 * @return string
	 */
	public function get_label(): string;

	/**
	 * Get the option type.
	 *
	 * @since 1.0.0
	 *
	 * @return string
	 */
	public function get_type(): string;
}
