type TData = {
    attributes: Array<string> | Array<Array<string>>;
    dateFrom?: string;
    dateTo?: string;
    limit?: number;
    offset?: number;
    filters?: Array<{
        id: string;
        value: string | number | boolean | Array<string | number | boolean>;
        type?: 'LIKE' | 'NOT LIKE' | '=' | '!=' | 'NULL' | 'NOT NULL';
        next?: 'AND' | 'OR';
    }>;
    sorting?: Array<{
        id: string;
        desc: boolean;
    }>;
};
type TScriptSummary = (table: string, data: Pick<TData, 'attributes' | 'dateFrom' | 'dateTo' | 'filters'> & {
    sumby: Array<string>;
}, columns: Record<'orig' | 'foreign', {
    [N: string]: (el?: string) => {
        orig: string;
        as: string;
    };
}>, leftjoinOn?: Array<string>) => string;
type TScriptDetails = (table: string, data: TData, columns: Record<'orig' | 'foreign', {
    [N: string]: (el?: string) => {
        orig: string;
        as: string;
    };
}>, leftjoinOn?: Array<string>) => string;
declare class Script {
    private basicColumns;
    private where;
    private basicWhere;
    private leftJoin;
    private withAs;
    /**
     * Метод проверки атрибутов.
     * @param {string | Array<string>} columns - Проверяющий список колонок
     * @param {Array<string | Array<string>>} attrList - Проверяемый список колонок
     * @returns {boolean} Возвращает флаг - существует ли аттрибут в списке
     */
    isIncludeColumn: (columns: string | Array<string>, attrList: Array<string>) => boolean;
    /**
     * Метод получение SQL скрипта вывода данных.
     * @param {string} table - Имя таблицы. (required)
     * @param {Pick<TScriptDetails, "data">} data - Объект с атрибутами и QUERY параметрами запроса. (required)
     * @param {object} columns - Проверяющий и переименовывающий колонки объект. (optional)
     * @param {Array<string>} leftjoinOn - Тип таблиц связывания. (optional)
     * @returns {string} Возвращает готовый для запроса SQL скрипт
     */
    details: TScriptDetails;
    /**
     * Метод получение SQL скрипта для вывода сумм с группировкой.
     * @param {string} table - Имя таблицы. (required)
     * @param {Pick<TScriptSummary, "data">} data - Объект с атрибутами и QUERY параметрами запроса. (required)
     * @param {object} columns - Проверяющий и переименовывающий колонки объект. (optional)
     * @param {string} type - Тип таблиц связывания. (optional)
     * @returns {string} Возвращает готовый для запроса SQL скрипт
     */
    summary: TScriptSummary;
}
export declare const ScriptSQL: Script;
export {};
