/**
 * 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';
/**
 * Request to download a Portable Format for Biomedical (PFB) file from a table/view query result.
 * @export
 * @interface DownloadPFBRequest
 */
export interface DownloadPFBRequest {
    /**
     *
     * @type {string}
     * @memberof DownloadPFBRequest
     */
    concreteType: DownloadPFBRequestConcreteTypeEnum;
    /**
     *
     * @type {string}
     * @memberof DownloadPFBRequest
     */
    entityId?: string;
    /**
     * Required. Used for the PFB entity.name field of each row added to the resulting avro file.
     * @type {string}
     * @memberof DownloadPFBRequest
     */
    pfbEntityName?: string;
    /**
     * Set the name of the resulting PFB file. An auto-generated name will be used if omitted.
     * @type {string}
     * @memberof DownloadPFBRequest
     */
    fileName?: string;
    /**
     * The list of column names from the select list that should be used to compose the PFB entity id field for each row. The values will be concatenated using an underscore (_). If not provided, the entity id will be set to the concatentation of the implicit ROW_ID and ROW_VERSION of the underlying table.
     * @type {Array<string>}
     * @memberof DownloadPFBRequest
     */
    pfbEntityIdColumnNames?: Array<string>;
    /**
     * The SQL query string.
     * @type {string}
     * @memberof DownloadPFBRequest
     */
    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 DownloadPFBRequest
     */
    additionalFilters?: Array<QueryFilter>;
    /**
     * The selected facet filters.
     * @type {Array<FacetColumnRequest>}
     * @memberof DownloadPFBRequest
     */
    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 DownloadPFBRequest
     */
    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 DownloadPFBRequest
     */
    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 DownloadPFBRequest
     */
    selectFileVersionColumn?: number;
    /**
     * The optional offset into the results
     * @type {number}
     * @memberof DownloadPFBRequest
     */
    offset?: number;
    /**
     * The optional limit to the results
     * @type {number}
     * @memberof DownloadPFBRequest
     */
    limit?: number;
    /**
     *
     * @type {Array<SortItem>}
     * @memberof DownloadPFBRequest
     */
    sort?: Array<SortItem>;
}
/**
 * @export
 */
export declare const DownloadPFBRequestConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_table_DownloadPFBRequest: "org.sagebionetworks.repo.model.table.DownloadPFBRequest";
};
export type DownloadPFBRequestConcreteTypeEnum = typeof DownloadPFBRequestConcreteTypeEnum[keyof typeof DownloadPFBRequestConcreteTypeEnum];
/**
 * Check if a given object implements the DownloadPFBRequest interface.
 */
export declare function instanceOfDownloadPFBRequest(value: object): value is DownloadPFBRequest;
export declare function DownloadPFBRequestFromJSON(json: any): DownloadPFBRequest;
export declare function DownloadPFBRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): DownloadPFBRequest;
export declare function DownloadPFBRequestToJSON(json: any): DownloadPFBRequest;
export declare function DownloadPFBRequestToJSONTyped(value?: DownloadPFBRequest | null, ignoreDiscriminator?: boolean): any;
