/**
 * 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 { SearchHit } from './SearchHit';
import type { TableSelectColumn } from './TableSelectColumn';
/**
 * Results of a search query against an OpenSearch index. The set of populated fields is governed by the request's responseParts: hits and offset are populated by default; the remaining fields are populated only when the corresponding SearchQueryPart is requested.
 * @export
 * @interface SearchQueryResults
 */
export interface SearchQueryResults {
    /**
     *
     * @type {string}
     * @memberof SearchQueryResults
     */
    concreteType: SearchQueryResultsConcreteTypeEnum;
    /**
     * Matching documents. Populated by default (or whenever SearchQueryPart.HITS is requested).
     * @type {Array<SearchHit>}
     * @memberof SearchQueryResults
     */
    hits?: Array<SearchHit>;
    /**
     * The total number of matching documents. Populated when SearchQueryPart.TOTAL_HITS is requested.
     * @type {number}
     * @memberof SearchQueryResults
     */
    totalHits?: number;
    /**
     * The columns represented in each hit's fields, in SELECT-clause order. Populated when SearchQueryPart.SELECT_COLUMNS is requested. When <code>body._source.includes</code> is non-empty, this is the subset of columns matching those names.
     * @type {Array<TableSelectColumn>}
     * @memberof SearchQueryResults
     */
    selectColumns?: Array<TableSelectColumn>;
    /**
     * The raw <a href="https://docs.opensearch.org/latest/aggregations/">OpenSearch aggregations</a> response &mdash; the contents of the <code>aggregations</code> key returned by AOSS, with field references rewritten back to column names. Populated whenever the request supplied <code>body.aggregations</code>; not gated by SearchQueryPart. Returned as an opaque JSON object because the OpenSearch DSL produces a wide variety of bucket shapes per aggregation type and per sub-aggregation.
     * @type {any}
     * @memberof SearchQueryResults
     */
    aggregationResults?: any | null;
    /**
     * Opaque cursor for the next <a href="https://docs.opensearch.org/latest/search-plugins/searching-data/paginate/">page</a>. Populated whenever the response carries hits and the underlying sort yielded sort values for the last hit. Pass back unchanged on the next request as <code>body.search_after</code>. Null when there are no further pages.
     * @type {Array<any>}
     * @memberof SearchQueryResults
     */
    nextSearchAfter?: Array<any>;
    /**
     * Zero-based pagination offset echoed from the request. Always populated.
     * @type {number}
     * @memberof SearchQueryResults
     */
    offset?: number;
}
/**
 * @export
 */
export declare const SearchQueryResultsConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_search_SearchQueryResults: "org.sagebionetworks.repo.model.search.SearchQueryResults";
};
export type SearchQueryResultsConcreteTypeEnum = typeof SearchQueryResultsConcreteTypeEnum[keyof typeof SearchQueryResultsConcreteTypeEnum];
/**
 * Check if a given object implements the SearchQueryResults interface.
 */
export declare function instanceOfSearchQueryResults(value: object): value is SearchQueryResults;
export declare function SearchQueryResultsFromJSON(json: any): SearchQueryResults;
export declare function SearchQueryResultsFromJSONTyped(json: any, ignoreDiscriminator: boolean): SearchQueryResults;
export declare function SearchQueryResultsToJSON(json: any): SearchQueryResults;
export declare function SearchQueryResultsToJSONTyped(value?: SearchQueryResults | null, ignoreDiscriminator?: boolean): any;
