/**
 * 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.
 */
/**
 * A CurationTaskProperties for file-based data, describing where data is uploaded and a view which contains the annotations.
 * @export
 * @interface FileBasedMetadataTaskProperties
 */
export interface FileBasedMetadataTaskProperties {
    /**
     * Indicates which implementation of CurationTaskProperties this object represents. Possible values include: 'org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties' and 'org.sagebionetworks.repo.model.curation.metadata.RecordBasedMetadataTaskProperties'.
     * @type {string}
     * @memberof FileBasedMetadataTaskProperties
     */
    concreteType: FileBasedMetadataTaskPropertiesConcreteTypeEnum;
    /**
     * The set of principal IDs that should collaborate on the grid session. This field may be used to set the ownerPrincipalId(s) of a linked <a href="${org.sagebionetworks.repo.model.grid.GridSession}">GridSession</a> if the suggestedAuthorizationMode is SESSION_OWNER
     * @type {Array<string>}
     * @memberof FileBasedMetadataTaskProperties
     */
    collaboratorPrincipalIds?: Array<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 FileBasedMetadataTaskProperties
     */
    suggestedAuthorizationMode?: FileBasedMetadataTaskPropertiesSuggestedAuthorizationModeEnum;
    /**
     * The synId of the folder where data files of this type are to be uploaded.
     * @type {string}
     * @memberof FileBasedMetadataTaskProperties
     */
    uploadFolderId?: string;
    /**
     * The synId of the FileView that shows all data of this type.  This FileView will be used to start new grid sessions for file annotation curation.
     * @type {string}
     * @memberof FileBasedMetadataTaskProperties
     */
    fileViewId?: string;
}
/**
 * @export
 */
export declare const FileBasedMetadataTaskPropertiesConcreteTypeEnum: {
    readonly org_sagebionetworks_repo_model_curation_metadata_FileBasedMetadataTaskProperties: "org.sagebionetworks.repo.model.curation.metadata.FileBasedMetadataTaskProperties";
};
export type FileBasedMetadataTaskPropertiesConcreteTypeEnum = typeof FileBasedMetadataTaskPropertiesConcreteTypeEnum[keyof typeof FileBasedMetadataTaskPropertiesConcreteTypeEnum];
/**
 * @export
 */
export declare const FileBasedMetadataTaskPropertiesSuggestedAuthorizationModeEnum: {
    readonly SESSION_OWNER: "SESSION_OWNER";
    readonly SOURCE_BENEFACTOR: "SOURCE_BENEFACTOR";
};
export type FileBasedMetadataTaskPropertiesSuggestedAuthorizationModeEnum = typeof FileBasedMetadataTaskPropertiesSuggestedAuthorizationModeEnum[keyof typeof FileBasedMetadataTaskPropertiesSuggestedAuthorizationModeEnum];
/**
 * Check if a given object implements the FileBasedMetadataTaskProperties interface.
 */
export declare function instanceOfFileBasedMetadataTaskProperties(value: object): value is FileBasedMetadataTaskProperties;
export declare function FileBasedMetadataTaskPropertiesFromJSON(json: any): FileBasedMetadataTaskProperties;
export declare function FileBasedMetadataTaskPropertiesFromJSONTyped(json: any, ignoreDiscriminator: boolean): FileBasedMetadataTaskProperties;
export declare function FileBasedMetadataTaskPropertiesToJSON(json: any): FileBasedMetadataTaskProperties;
export declare function FileBasedMetadataTaskPropertiesToJSONTyped(value?: FileBasedMetadataTaskProperties | null, ignoreDiscriminator?: boolean): any;
