/**
 * 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 { FacetColumnSortConfig } from './FacetColumnSortConfig';
/**
 * Defines a single sub-column of a column of type JSON.  This can be used to enable the faceting of the sub-columns.
 * @export
 * @interface JsonSubColumnModel
 */
export interface JsonSubColumnModel {
    /**
     * The display name of the column
     * @type {string}
     * @memberof JsonSubColumnModel
     */
    name?: string;
    /**
     * The column type determines the type of data that can be stored in a column. Switching between types (using <a href="${POST.entity.id.table.transaction.async.start}">a transaction</a> with <a href="${org.sagebionetworks.repo.model.table.TableUpdateTransactionRequest}">TableUpdateTransactionRequest</a> in the "changes" list) is generally allowed except for switching to "_LIST" suffixed types. In such cases, a new column must be created and data must be copied over manually
     * @type {string}
     * @memberof JsonSubColumnModel
     */
    columnType?: JsonSubColumnModelColumnTypeEnum;
    /**
     * Set to one of the enumerated values to indicate a column should be treated as a facet
     * @type {string}
     * @memberof JsonSubColumnModel
     */
    facetType?: JsonSubColumnModelFacetTypeEnum;
    /**
     *
     * @type {FacetColumnSortConfig}
     * @memberof JsonSubColumnModel
     */
    facetSortConfig?: FacetColumnSortConfig;
    /**
     * Defines the JSON path of the sub column. Use the '$' char to represent the root of JSON object. If the JSON key of a sub column is 'a', then the jsonPath for that column would be: '$.a'.
     * @type {string}
     * @memberof JsonSubColumnModel
     */
    jsonPath?: string;
}
/**
 * @export
 */
export declare const JsonSubColumnModelColumnTypeEnum: {
    readonly STRING: "STRING";
    readonly DOUBLE: "DOUBLE";
    readonly INTEGER: "INTEGER";
    readonly BOOLEAN: "BOOLEAN";
    readonly DATE: "DATE";
    readonly FILEHANDLEID: "FILEHANDLEID";
    readonly ENTITYID: "ENTITYID";
    readonly SUBMISSIONID: "SUBMISSIONID";
    readonly EVALUATIONID: "EVALUATIONID";
    readonly LINK: "LINK";
    readonly MEDIUMTEXT: "MEDIUMTEXT";
    readonly LARGETEXT: "LARGETEXT";
    readonly USERID: "USERID";
    readonly STRING_LIST: "STRING_LIST";
    readonly INTEGER_LIST: "INTEGER_LIST";
    readonly BOOLEAN_LIST: "BOOLEAN_LIST";
    readonly DATE_LIST: "DATE_LIST";
    readonly ENTITYID_LIST: "ENTITYID_LIST";
    readonly USERID_LIST: "USERID_LIST";
    readonly JSON: "JSON";
};
export type JsonSubColumnModelColumnTypeEnum = typeof JsonSubColumnModelColumnTypeEnum[keyof typeof JsonSubColumnModelColumnTypeEnum];
/**
 * @export
 */
export declare const JsonSubColumnModelFacetTypeEnum: {
    readonly enumeration: "enumeration";
    readonly range: "range";
};
export type JsonSubColumnModelFacetTypeEnum = typeof JsonSubColumnModelFacetTypeEnum[keyof typeof JsonSubColumnModelFacetTypeEnum];
/**
 * Check if a given object implements the JsonSubColumnModel interface.
 */
export declare function instanceOfJsonSubColumnModel(value: object): value is JsonSubColumnModel;
export declare function JsonSubColumnModelFromJSON(json: any): JsonSubColumnModel;
export declare function JsonSubColumnModelFromJSONTyped(json: any, ignoreDiscriminator: boolean): JsonSubColumnModel;
export declare function JsonSubColumnModelToJSON(json: any): JsonSubColumnModel;
export declare function JsonSubColumnModelToJSONTyped(value?: JsonSubColumnModel | null, ignoreDiscriminator?: boolean): any;
