/**
 * 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 { TableQuery } from './TableQuery';
/**
 * Start a job to create a new Grid session.
 * @export
 * @interface CreateGridRequest
 */
export interface CreateGridRequest {
    /**
     *
     * @type {string}
     * @memberof CreateGridRequest
     */
    concreteType: CreateGridRequestConcreteTypeEnum;
    /**
     *
     * @type {TableQuery}
     * @memberof CreateGridRequest
     */
    initialQuery?: TableQuery;
    /**
     * When provided, the grid will be initialized using the CSV file stored for the given record set id. The grid columns will match the header of the CSV. Optional, if present the initialQuery cannot be included.
     * @type {string}
     * @memberof CreateGridRequest
     */
    recordSetId?: string;
    /**
     * The owner of the grid determines who is allowed to join and participate in the grid's session. The default owner will be the user that started the grid session, but only that user will have access to the grid. In order to allow other users to access the grid, set this value to the id of a team. When a team ID is provided as the owner, all members of that team will have equal access to the grid. Note: If a team ID is provided, the creator of the grid must be a member of the team.
     * @type {string}
     * @memberof CreateGridRequest
     */
    ownerPrincipalId?: string;
    /**
     * Defines the authorization mode used to gate access to a grid session. The mode is set at session creation time and cannot be changed. It controls both who may join the session (create a replica) and which rows are included in the session's initial snapshot.
     *
     * SESSION_OWNER (default): Access is determined by the session owner. Only the owner (or members of the owner's team) may join. When the source is a view, the snapshot includes rows that the owner has access to; non-owner members see data through the owner's access scope.
     *
     * SOURCE_BENEFACTOR: Access is determined by EDIT access on the source entity's benefactor(s). At session creation the set of benefactor IDs that the creating user (the 'action user') has EDIT access on is captured and stored on the session. Any user who has EDIT access on all of those captured benefactors may join the session and see all rows in the snapshot. This mode is useful when a project administrator wants all editors of a project to be able to collaborate on a grid, without needing to manage a separate owner team.
     * @type {string}
     * @memberof CreateGridRequest
     */
    authorizationMode?: CreateGridRequestAuthorizationModeEnum;
}
/**
 * @export
 */
export declare const CreateGridRequestConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_grid_CreateGridRequest: "org.sagebionetworks.repo.model.grid.CreateGridRequest";
};
export type CreateGridRequestConcreteTypeEnum = typeof CreateGridRequestConcreteTypeEnum[keyof typeof CreateGridRequestConcreteTypeEnum];
/**
 * @export
 */
export declare const CreateGridRequestAuthorizationModeEnum: {
    readonly SESSION_OWNER: "SESSION_OWNER";
    readonly SOURCE_BENEFACTOR: "SOURCE_BENEFACTOR";
};
export type CreateGridRequestAuthorizationModeEnum = typeof CreateGridRequestAuthorizationModeEnum[keyof typeof CreateGridRequestAuthorizationModeEnum];
/**
 * Check if a given object implements the CreateGridRequest interface.
 */
export declare function instanceOfCreateGridRequest(value: object): value is CreateGridRequest;
export declare function CreateGridRequestFromJSON(json: any): CreateGridRequest;
export declare function CreateGridRequestFromJSONTyped(json: any, ignoreDiscriminator: boolean): CreateGridRequest;
export declare function CreateGridRequestToJSON(json: any): CreateGridRequest;
export declare function CreateGridRequestToJSONTyped(value?: CreateGridRequest | null, ignoreDiscriminator?: boolean): any;
