import { Artifacts } from './steps/BaseStep';
import { Condition, Expression, IStatementGiver } from './models';
import { BuilderData } from './builder';
import { BinderStore } from './binder';
import { Column } from './database';
import { ItemInfo } from './ItemInfo';
export declare enum AggregateFunctionEnum {
    SUM = "SUM",
    AVG = "AVG",
    COUNT = "COUNT",
    MAX = "MAX",
    MIN = "MIN"
}
export declare class AggregateFunction implements IStatementGiver {
    readonly funcName: AggregateFunctionEnum;
    private readonly expression;
    private readonly unique;
    constructor(funcName: AggregateFunctionEnum, expression: Expression);
    as(alias: string): ItemInfo;
    eq(value: number): Condition;
    eq$(value: number): Condition;
    ne(value: number): Condition;
    ne$(value: number): Condition;
    gt(value: number): Condition;
    gt$(value: number): Condition;
    ge(value: number): Condition;
    ge$(value: number): Condition;
    lt(value: number): Condition;
    lt$(value: number): Condition;
    le(value: number): Condition;
    le$(value: number): Condition;
    getStmt(data: BuilderData, artifacts: Artifacts, binderStore: BinderStore): string;
    getColumns(): Column[];
}
