/**
 * 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 { FacetColumnRequest } from './FacetColumnRequest';
import type { QueryFilter } from './QueryFilter';
import type { SortItem } from './SortItem';
/**
 *
 * @export
 * @interface TableQuery
 */
export interface TableQuery {
    /**
     * The SQL query string.
     * @type {string}
     * @memberof TableQuery
     */
    sql?: string;
    /**
     * Appends additional filters to the SQL query. These are applied before facets. Filters within the list have an AND relationship. If a WHERE clause already exists on the SQL query or facets are selected, it will also be ANDed with the query generated by these additional filters.
     * @type {Array<QueryFilter>}
     * @memberof TableQuery
     */
    additionalFilters?: Array<QueryFilter>;
    /**
     * The selected facet filters.
     * @type {Array<FacetColumnRequest>}
     * @memberof TableQuery
     */
    selectedFacets?: Array<FacetColumnRequest>;
    /**
     * Optional, default false. When true, a query results against views will include the Etag of each entity in the results.  Note: The etag is necessary to update Entities in the view.
     * @type {boolean}
     * @memberof TableQuery
     */
    includeEntityEtag?: boolean;
    /**
     * The id of the column used to select file entities (e.g. to fetch the action required for download). The column needs to be an ENTITYID type column and be part of the schema of the underlying table/view.
     * @type {number}
     * @memberof TableQuery
     */
    selectFileColumn?: number;
    /**
     * The id of the column used as the version for selecting file entities when required (e.g. to add a materialized view query to the download cart with version enabled). The column needs to be an INTEGER type column and be part of the schema of the underlying table/view.
     * @type {number}
     * @memberof TableQuery
     */
    selectFileVersionColumn?: number;
    /**
     * The optional offset into the results
     * @type {number}
     * @memberof TableQuery
     */
    offset?: number;
    /**
     * The optional limit to the results
     * @type {number}
     * @memberof TableQuery
     */
    limit?: number;
    /**
     *
     * @type {Array<SortItem>}
     * @memberof TableQuery
     */
    sort?: Array<SortItem>;
}
/**
 * Check if a given object implements the TableQuery interface.
 */
export declare function instanceOfTableQuery(value: object): value is TableQuery;
export declare function TableQueryFromJSON(json: any): TableQuery;
export declare function TableQueryFromJSONTyped(json: any, ignoreDiscriminator: boolean): TableQuery;
export declare function TableQueryToJSON(json: any): TableQuery;
export declare function TableQueryToJSONTyped(value?: TableQuery | null, ignoreDiscriminator?: boolean): any;
