import { Dayjs } from "dayjs";
import { Condition } from "./Condition";
import { ExpressionValue, FunctionExpression, OperationExpression } from "./Expression";
export declare const Function: {
    count: (column: ExpressionValue) => FunctionExpression;
    add: (...columns: ExpressionValue[]) => OperationExpression;
    subtract: (...columns: ExpressionValue[]) => OperationExpression;
    divide: (...columns: ExpressionValue[]) => OperationExpression;
    multiply: (...columns: ExpressionValue[]) => OperationExpression;
    sum: (column: ExpressionValue) => FunctionExpression;
    year: (column: ExpressionValue) => FunctionExpression;
    month: (column: ExpressionValue) => FunctionExpression;
    min: (column: ExpressionValue) => FunctionExpression;
    max: (column: ExpressionValue) => FunctionExpression;
    avg: (column: ExpressionValue) => FunctionExpression;
    abs: (column: ExpressionValue) => FunctionExpression;
    dateDiff: (interval: "year" | "month" | "day" | "hour" | "minute" | "second", date1: ExpressionValue, date2: ExpressionValue) => import("./Expression").ExpressionBase;
    formatDate: (date: Dayjs) => import("./Expression").ExpressionBase;
    substring: (string: string, start: ExpressionValue, length: ExpressionValue) => FunctionExpression;
    string: (value: string) => import("./Expression").ExpressionBase;
    null: () => import("./Expression").ExpressionBase;
    ifnull: (name: ExpressionValue, value: ExpressionValue) => FunctionExpression;
    concat: (...values: ExpressionValue[]) => FunctionExpression;
    if: (condition: Condition, trueValue: ExpressionValue, falseValue: ExpressionValue) => FunctionExpression;
    dateAdd: (date: ExpressionValue, value: ExpressionValue, interval: "year" | "month" | "day") => FunctionExpression;
    dateRangeSumField: ({ dateColumn, valueColumn, start, end, }: {
        dateColumn: string;
        valueColumn: string;
        start: Dayjs | string;
        end: Dayjs | string;
    }) => FunctionExpression;
    priceCurrentAndPreviousDiffField: ({ thisYearColumn, lastYearColumn, }: {
        thisYearColumn: ExpressionValue;
        lastYearColumn: ExpressionValue;
    }) => FunctionExpression;
};
export { Function as Fn };
