/**
 * 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 { Aggregation } from './Aggregation';
import type { SourceFilter } from './SourceFilter';
import type { Highlight } from './Highlight';
import type { Rescore } from './Rescore';
import type { FieldCollapse } from './FieldCollapse';
import type { DslQuery } from './DslQuery';
/**
 * <p>The body of an OpenSearch <a href="https://docs.opensearch.org/latest/api-reference/search-apis/search/"><code>_search</code></a> request, narrowed to the top-level keys Synapse accepts. Each slot's contents are pass-through <a href="https://docs.opensearch.org/latest/query-dsl/">OpenSearch query DSL</a>; see the search REST endpoint for the inner-clause allowlist, field-reference rules, pagination semantics, and per-request limits.</p>
 * @export
 * @interface SearchSearchQuery
 */
export interface SearchSearchQuery {
    /**
     *
     * @type {DslQuery}
     * @memberof SearchSearchQuery
     */
    query?: DslQuery;
    /**
     *
     * @type {DslQuery}
     * @memberof SearchSearchQuery
     */
    post_filter?: DslQuery;
    /**
     * <p>Optional. Map of caller-chosen name to <a href="${org.sagebionetworks.repo.model.search.dsl.Aggregation}">aggregation</a> definition. The raw aggregation result comes back on <code>SearchQueryResults.aggregationResults</code>. For the facet-counting pattern (a <code>terms</code> aggregation alongside <code>post_filter</code>), see the <a href="https://docs.opensearch.org/latest/tutorials/faceted-search/#maintaining-facet-options-during-filtering">faceted search tutorial</a>.</p>
     * @type {{ [key: string]: Aggregation; }}
     * @memberof SearchSearchQuery
     */
    aggregations?: {
        [key: string]: Aggregation;
    };
    /**
     *
     * @type {Highlight}
     * @memberof SearchSearchQuery
     */
    highlight?: Highlight;
    /**
     *
     * @type {FieldCollapse}
     * @memberof SearchSearchQuery
     */
    collapse?: FieldCollapse;
    /**
     *
     * @type {Rescore}
     * @memberof SearchSearchQuery
     */
    rescore?: Rescore;
    /**
     * Optional. Result <a href="https://docs.opensearch.org/latest/search-plugins/searching-data/sort/">ordering</a>, in native OpenSearch sort shape (a string column name, <code>{column: "asc|desc"}</code>, or <code>{column: {order: ..., mode: ..., missing: ...}}</code>) applied in order. Only the <code>field</code> and <code>_score</code> sort kinds are accepted &mdash; script and geo-distance sorts are rejected server-side. The pseudo-column <code>_score</code> sorts by relevance. When omitted, results are sorted by relevance descending.
     * @type {Array<any>}
     * @memberof SearchSearchQuery
     */
    sort?: Array<any>;
    /**
     *
     * @type {SourceFilter}
     * @memberof SearchSearchQuery
     */
    _source?: SourceFilter;
    /**
     * Optional. Zero-based <a href="https://docs.opensearch.org/latest/search-plugins/searching-data/paginate/">pagination</a> offset; default <code>0</code>. Ignored when <code>search_after</code> is supplied (the cursor determines the page start).
     * @type {number}
     * @memberof SearchSearchQuery
     */
    from?: number;
    /**
     * Optional. Maximum number of hits to return per <a href="https://docs.opensearch.org/latest/search-plugins/searching-data/paginate/">page</a>. Default: 25. Maximum: 100 (larger values are silently capped).
     * @type {number}
     * @memberof SearchSearchQuery
     */
    size?: number;
    /**
     * Optional. Opaque <a href="https://docs.opensearch.org/latest/search-plugins/searching-data/paginate/">cursor</a> emitted as <code>nextSearchAfter</code> on the previous response. Pass back unchanged. When supplied, <code>from</code> is ignored.
     * @type {Array<any>}
     * @memberof SearchSearchQuery
     */
    search_after?: Array<any>;
}
/**
 * Check if a given object implements the SearchSearchQuery interface.
 */
export declare function instanceOfSearchSearchQuery(value: object): value is SearchSearchQuery;
export declare function SearchSearchQueryFromJSON(json: any): SearchSearchQuery;
export declare function SearchSearchQueryFromJSONTyped(json: any, ignoreDiscriminator: boolean): SearchSearchQuery;
export declare function SearchSearchQueryToJSON(json: any): SearchSearchQuery;
export declare function SearchSearchQueryToJSONTyped(value?: SearchSearchQuery | null, ignoreDiscriminator?: boolean): any;
