/**
 * 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.
 */
/**
 * Basic information about a grid session.
 * @export
 * @interface GridSession
 */
export interface GridSession {
    /**
     * The unique sessionId that identifies the grid session.
     * @type {string}
     * @memberof GridSession
     */
    sessionId?: string;
    /**
     * The user that started this session.
     * @type {string}
     * @memberof GridSession
     */
    startedBy?: string;
    /**
     * The date-time when the session was started.
     * @type {string}
     * @memberof GridSession
     */
    startedOn?: string;
    /**
     * Changes when the session chagnes.
     * @type {string}
     * @memberof GridSession
     */
    etag?: string;
    /**
     * The date-time when the session was last changed.
     * @type {string}
     * @memberof GridSession
     */
    modifiedOn?: string;
    /**
     * The last replica ID issued to a client. Client replica IDs are incremented.
     * @type {number}
     * @memberof GridSession
     */
    lastReplicaIdClient?: number;
    /**
     * The last replica ID issued to a service. Service replica IDs are decremented.
     * @type {number}
     * @memberof GridSession
     */
    lastReplicaIdService?: number;
    /**
     * The $id of the JSON schema that will be used for model validation in this grid session.
     * @type {string}
     * @memberof GridSession
     */
    gridJsonSchema$Id?: string;
    /**
     * The synId of the table/view/csv that this grid was cloned from.
     * @type {string}
     * @memberof GridSession
     */
    sourceEntityId?: string;
    /**
     * If referencing a RecordSet (CSV), this represents the version number of the source entity at the time this grid was created or last synchronized. This reference enables the system to identify if rows were deleted in a GridSession.
     * @type {number}
     * @memberof GridSession
     */
    sourceEntityVersionNumber?: number;
    /**
     * The principal ID (user or team) that owns this grid session. If the owner is a user, only that user can access the grid. If the owner is a team, all members of that team have equal access to the grid.
     * @type {string}
     * @memberof GridSession
     */
    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 GridSession
     */
    authorizationMode?: GridSessionAuthorizationModeEnum;
}
/**
 * @export
 */
export declare const GridSessionAuthorizationModeEnum: {
    readonly SESSION_OWNER: "SESSION_OWNER";
    readonly SOURCE_BENEFACTOR: "SOURCE_BENEFACTOR";
};
export type GridSessionAuthorizationModeEnum = typeof GridSessionAuthorizationModeEnum[keyof typeof GridSessionAuthorizationModeEnum];
/**
 * Check if a given object implements the GridSession interface.
 */
export declare function instanceOfGridSession(value: object): value is GridSession;
export declare function GridSessionFromJSON(json: any): GridSession;
export declare function GridSessionFromJSONTyped(json: any, ignoreDiscriminator: boolean): GridSession;
export declare function GridSessionToJSON(json: any): GridSession;
export declare function GridSessionToJSONTyped(value?: GridSession | null, ignoreDiscriminator?: boolean): any;
