import { ODataFilter } from "./filter"; /** * Transformation for `$apply` * * @experimental */ export declare class Transformation { private _aggregate; private _countSumPercent; private _identity; private _concat; private _groupBy; private _filter; static newTransformation(): Transformation; private constructor(); /** * Aggregate expressions can define an alias using the as keyword, * followed by a SimpleIdentifier * * @see [Transformation aggregate](http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs01/odata-data-aggregation-ext-v4.0-cs01.html#_The_aggregate_Transformation_1) * @param expression * @experimental * @example * * ```js * aggregate('Amount with sum as Total') * ``` * @returns */ aggregate(expression: string): this; /** * * @param count The first parameter specifies the number of instances to return in the transformed set. currently only support number * @param valueExpression The second parameter specifies the value by which the instances are compared for determining the result set. */ topcount(count: number, valueExpression: string): this; topsum(count: number, valueExpression: string): this; toppercent(count: number, valueExpression: string): this; bottomcount(count: number, valueExpression: string): this; bottomsum(count: number, valueExpression: string): this; bottompercent(count: number, valueExpression: string): this; /** * The identity transformation returns its input set. * * @returns */ identity(): this; /** * The concat transformation takes two or more parameters, * each of which is a sequence of set transformations. * * @param transformations * @returns */ concat(...transformations: Array): this; /** * The filter transformation takes a Boolean expression that could also be passed as a `$filter` system query option to its input set and returns all instances for which this expression evaluates to true. * @param filter * @returns */ filter(filter: ODataFilter): this; /** * The `groupby` transformation takes one or two parameters and 1. Splits the initial set into subsets where all instances in a subset have the same values for the grouping properties specified in the first parameter, 2. Applies set transformations to each subset according to the second parameter, resulting in a new set of potentially different structure and cardinality, 3. Ensures that the instances in the result set contain all grouping properties with the correct values for the group, 4. Concatenates the intermediate result sets into one result set. * @see [Transformation groupby](http://docs.oasis-open.org/odata/odata-data-aggregation-ext/v4.0/cs01/odata-data-aggregation-ext-v4.0-cs01.html#_Toc378326304) * @param properties * @param transformations * @experimental * @returns */ groupBy(properties: Array, ...transformations: Array): this; toString(): any; } export declare function transformation(): Transformation;