<?php


/**
 * Interface HealthDiagnosticSqlBuilderInterface
 */
interface HealthDiagnosticSqlBuilderInterface
{
    /**
     * @return mixed
     */
    public function getNonOverlappedSql(): string;

    /**
     * @return string
     */
    public function getSql(): string;

    /**
     * @param HealthDiagnosticSqlBuilderInterface $category
     *
     * @return HealthDiagnosticSqlBuilderInterface
     */
    public function doNotOverlapWithCategory(HealthDiagnosticSqlBuilderInterface $category): HealthDiagnosticSqlBuilderInterface;

    /**
     * @return mixed
     */
    public function getReportSql(): string;


    /**
     * @param array $data
     *
     * @return HealthDiagnosticSqlBuilderInterface
     */
    public function setParams(array $data): HealthDiagnosticSqlBuilderInterface;


}
