/** * A Bucket is an individual entry for a facet or bin for a histogram * * @export * @interface Bucket */ export interface Bucket { key: string | number; doc_count: number; } export declare enum AggregationSortType { /** * Sort descending numerically by count/frequency */ COUNT = 0, /** * Sort ascending alphabetically by key */ ALPHABETICAL = 1, /** * Sort descending numerically by key */ NUMERIC = 2 } export interface AggregationOptions { buckets: Bucket[] | number[]; first_bucket_key?: number; last_bucket_key?: number; number_buckets?: number; interval?: number; first_bucket_year?: number; first_bucket_month?: number; last_bucket_year?: number; last_bucket_month?: number; interval_in_months?: number; } /** * Aggregations are the datasource for facets and histograms */ export declare class Aggregation { /** * The year_histogram returns a `number` array, and * other facets return a `Bucket` array. */ readonly buckets: Bucket[] | number[]; readonly first_bucket_key?: number; readonly last_bucket_key?: number; readonly number_buckets?: number; readonly interval?: number; readonly first_bucket_year?: number; readonly first_bucket_month?: number; readonly last_bucket_year?: number; readonly last_bucket_month?: number; readonly interval_in_months?: number; constructor(options: AggregationOptions); /** * Returns a sorted copy of this aggregation's buckets, according to the given sort option. * This method is memoized and repeat calls should not incur a performance cost for a given * sort type after the first such call per instance. * * Purely numeric buckets (e.g., year_histogram) are not sorted by this method and are * returned as-is. * * @param sortType What to sort the buckets on. * Accepted values are: * - `AggregationSortType.COUNT` (descending order) * - `AggregationSortType.ALPHABETICAL` (ascending order) * - `AggregationSortType.NUMERIC` (descending order) */ getSortedBuckets(sortType?: AggregationSortType): Bucket[] | number[]; /** * Type guard for number[] buckets, since the buckets provided by the PPS * may be either keyed objects or just an array of numbers. Currently only * `year_histogram` facets are of the latter type. */ private isRawNumberBuckets; }