/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
/**
 * A <a href="https://docs.opensearch.org/latest/aggregations/bucket/terms/"><code>terms</code></a> bucket aggregation &mdash; one bucket per distinct value of <code>field</code>.
 * @export
 * @interface TermsAggregation
 */
export interface TermsAggregation {
    /**
     * Required. The column to bucket by.
     * @type {string}
     * @memberof TermsAggregation
     */
    field?: string;
    /**
     * Optional. Maximum number of buckets to return. Capped server-side.
     * @type {number}
     * @memberof TermsAggregation
     */
    size?: number;
    /**
     * Optional. Number of candidate buckets collected per shard before the final reduce. Capped server-side.
     * @type {number}
     * @memberof TermsAggregation
     */
    shard_size?: number;
    /**
     * Optional. Minimum document count for a bucket to be returned. Default <code>1</code>.
     * @type {number}
     * @memberof TermsAggregation
     */
    min_doc_count?: number;
    /**
     * Optional. Per-shard minimum document count before a bucket is considered.
     * @type {number}
     * @memberof TermsAggregation
     */
    shard_min_doc_count?: number;
    /**
     * Optional. Whether to return the per-bucket document-count error bound.
     * @type {boolean}
     * @memberof TermsAggregation
     */
    show_term_doc_count_error?: boolean;
    /**
     * Optional. Bucket sort order &mdash; a <code>{metric: "asc|desc"}</code> object or an array of them.
     * @type {any}
     * @memberof TermsAggregation
     */
    order?: any | null;
    /**
     * Optional. Terms to include &mdash; a regex string or an array of exact values.
     * @type {any}
     * @memberof TermsAggregation
     */
    include?: any | null;
    /**
     * Optional. Terms to exclude &mdash; a regex string or an array of exact values.
     * @type {any}
     * @memberof TermsAggregation
     */
    exclude?: any | null;
    /**
     * Optional. Bucket value assigned to documents missing <code>field</code>.
     * @type {any}
     * @memberof TermsAggregation
     */
    missing?: any | null;
    /**
     * Optional. <code>breadth_first</code> or <code>depth_first</code> sub-aggregation collection strategy.
     * @type {string}
     * @memberof TermsAggregation
     */
    collect_mode?: string;
    /**
     * Optional. Internal execution strategy hint (<code>map</code> / <code>global_ordinals</code>).
     * @type {string}
     * @memberof TermsAggregation
     */
    execution_hint?: string;
    /**
     * Optional. Format applied to the bucket key in the response.
     * @type {string}
     * @memberof TermsAggregation
     */
    format?: string;
    /**
     * Optional. Explicit value type for the field when it cannot be inferred.
     * @type {string}
     * @memberof TermsAggregation
     */
    value_type?: string;
}
/**
 * Check if a given object implements the TermsAggregation interface.
 */
export declare function instanceOfTermsAggregation(value: object): value is TermsAggregation;
export declare function TermsAggregationFromJSON(json: any): TermsAggregation;
export declare function TermsAggregationFromJSONTyped(json: any, ignoreDiscriminator: boolean): TermsAggregation;
export declare function TermsAggregationToJSON(json: any): TermsAggregation;
export declare function TermsAggregationToJSONTyped(value?: TermsAggregation | null, ignoreDiscriminator?: boolean): any;
