/**
 * 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.
 */
import type { DslQuery } from './DslQuery';
/**
 * A <a href="https://docs.opensearch.org/latest/aggregations/bucket/filters/"><code>filters</code></a> multi-bucket aggregation. Each entry of <code>filters</code> is a named bucket whose documents match its <a href="${org.sagebionetworks.repo.model.search.dsl.Query}">Query</a>. The named (keyed) form is the supported contract; each query is validated identically to the top-level <code>query</code> and is scoped by it.
 * @export
 * @interface FiltersAggregation
 */
export interface FiltersAggregation {
    /**
     * Required. Named buckets, keyed by caller-chosen name; each value is a <a href="${org.sagebionetworks.repo.model.search.dsl.Query}">Query</a> selecting that bucket's documents.
     * @type {{ [key: string]: DslQuery; }}
     * @memberof FiltersAggregation
     */
    filters?: {
        [key: string]: DslQuery;
    };
    /**
     * Optional. When <code>true</code>, adds a bucket for documents that match none of the named filters.
     * @type {boolean}
     * @memberof FiltersAggregation
     */
    other_bucket?: boolean;
    /**
     * Optional. The key under which the other bucket is returned.
     * @type {string}
     * @memberof FiltersAggregation
     */
    other_bucket_key?: string;
    /**
     * Optional. Whether buckets are returned as a keyed object (default) rather than an array.
     * @type {boolean}
     * @memberof FiltersAggregation
     */
    keyed?: boolean;
}
/**
 * Check if a given object implements the FiltersAggregation interface.
 */
export declare function instanceOfFiltersAggregation(value: object): value is FiltersAggregation;
export declare function FiltersAggregationFromJSON(json: any): FiltersAggregation;
export declare function FiltersAggregationFromJSONTyped(json: any, ignoreDiscriminator: boolean): FiltersAggregation;
export declare function FiltersAggregationToJSON(json: any): FiltersAggregation;
export declare function FiltersAggregationToJSONTyped(value?: FiltersAggregation | null, ignoreDiscriminator?: boolean): any;
