import type { CypherEnvironment } from "../../Environment";
import type { Expr } from "../../types";
import { CypherFunction } from "./CypherFunctions";
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-count | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function count(expr: Expr | "*"): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-min | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function min(expr: Expr): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-max | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function max(expr: Expr): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-avg | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function avg(expr: Expr): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-sum | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function sum(expr: Expr): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-collect | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function collect(expr: Expr): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-percentilecont | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function percentileCont(expr: Expr, percentile: number | Expr): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-percentiledisc | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function percentileDisc(expr: Expr, percentile: number | Expr): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-stdev | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function stDev(expr: Expr): CypherAggregationFunction;
/**
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#functions-stdevp | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare function stDevP(expr: Expr): CypherAggregationFunction;
/** Represents a Cypher Aggregation function
 * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating | Cypher Documentation}
 * @group Functions
 * @category Aggregations
 */
export declare class CypherAggregationFunction extends CypherFunction {
    private hasDistinct;
    private readonly hasStar;
    /**
     * @internal
     */
    constructor(name: string, params: Array<Expr | "*">);
    /**
     * Adds DISTINCT to remove duplicates on the aggregation functions
     * @see {@link https://neo4j.com/docs/cypher-manual/current/functions/aggregating/#_counting_with_and_without_duplicates | Cypher Documentation}
     */
    distinct(): this;
    /** @internal */
    getCypher(env: CypherEnvironment): string;
}
