/**
 * 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';
import type { CsvTableDescriptor } from './CsvTableDescriptor';
/**
 * A CSV table download request.
 * @export
 * @interface DownloadFromTableRequest
 */
export interface DownloadFromTableRequest {
    /**
     *
     * @type {string}
     * @memberof DownloadFromTableRequest
     */
    concreteType: DownloadFromTableRequestConcreteTypeEnum;
    /**
     *
     * @type {string}
     * @memberof DownloadFromTableRequest
     */
    entityId?: string;
    /**
     * Should the first line contain the columns names as a header in the resulting file?  Set to 'true' to include the headers else, 'false'.  The default value is 'true'.
     * @type {boolean}
     * @memberof DownloadFromTableRequest
     */
    writeHeader?: boolean;
    /**
     * Should the first two columns contain the row ID and row version?  The default value is 'true'.
     * @type {boolean}
     * @memberof DownloadFromTableRequest
     */
    includeRowIdAndRowVersion?: boolean;
    /**
     *
     * @type {CsvTableDescriptor}
     * @memberof DownloadFromTableRequest
     */
    csvTableDescriptor?: CsvTableDescriptor;
    /**
     * The optional name for the downloaded table.
     * @type {string}
     * @memberof DownloadFromTableRequest
     */
    fileName?: string;
    /**
     * The SQL query string.
     * @type {string}
     * @memberof DownloadFromTableRequest
     */
    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 DownloadFromTableRequest
     */
    additionalFilters?: Array<QueryFilter>;
    /**
     * The selected facet filters.
     * @type {Array<FacetColumnRequest>}
     * @memberof DownloadFromTableRequest
     */
    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 DownloadFromTableRequest
     */
    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 DownloadFromTableRequest
     */
    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 DownloadFromTableRequest
     */
    selectFileVersionColumn?: number;
    /**
     * The optional offset into the results
     * @type {number}
     * @memberof DownloadFromTableRequest
     */
    offset?: number;
    /**
     * The optional limit to the results
     * @type {number}
     * @memberof DownloadFromTableRequest
     */
    limit?: number;
    /**
     *
     * @type {Array<SortItem>}
     * @memberof DownloadFromTableRequest
     */
    sort?: Array<SortItem>;
}
/**
 * @export
 */
export declare const DownloadFromTableRequestConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_table_DownloadFromTableRequest: "org.sagebionetworks.repo.model.table.DownloadFromTableRequest";
};
export type DownloadFromTableRequestConcreteTypeEnum = typeof DownloadFromTableRequestConcreteTypeEnum[keyof typeof DownloadFromTableRequestConcreteTypeEnum];
/**
 * Check if a given object implements the DownloadFromTableRequest interface.
 */
export declare function instanceOfDownloadFromTableRequest(value: object): value is DownloadFromTableRequest;
export declare function DownloadFromTableRequestFromJSON(json: any): DownloadFromTableRequest;
export declare function DownloadFromTableRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): DownloadFromTableRequest;
export declare function DownloadFromTableRequestToJSON(json: any): DownloadFromTableRequest;
export declare function DownloadFromTableRequestToJSONTyped(value?: DownloadFromTableRequest | null, ignoreDiscriminator?: boolean): any;
