<?php
namespace Modules\API\APIInterne\Mail\Controller;

use Skeleton\Controller\Controller;

abstract class AbsMailController extends Controller
{

     /**
     * mailEnvoi
     *
     * @param  array<mixed> $infoMail
     * @param  array<mixed> $parametreOauth2
     * @param  array<mixed> $paramDico
     * @return string
     */
    abstract public function mailEnvoi(
        string $ID,
        bool $retryNoTLS,
        \Entity\Model\Paravrac $paravrac,
        string $username,
        string $password,
        string $host,
        int $port,
        array $infoMail,
        array $parametreOauth2,
        array $paramDico
    ) : string;

    /**
     * @param \stdClass $config as describe by ParamImap::parseRow's result
     */
    abstract public function testEmailReadConnection(object $config) :void;
}
