/**
 * 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 { AccessControlList } from './AccessControlList';
import type { Entity } from './Entity';
import type { RestrictionInformationResponse } from './RestrictionInformationResponse';
import type { EntityPath } from './EntityPath';
import type { V2Annotations } from './V2Annotations';
import type { FileHandle } from './FileHandle';
import type { Activity } from './Activity';
import type { TableBundle } from './TableBundle';
import type { DoiAssociation } from './DoiAssociation';
import type { UserEntityPermissions } from './UserEntityPermissions';
/**
 * Bundle to transport an Entity and related data objects
 * @export
 * @interface EntityBundle
 */
export interface EntityBundle {
    /**
     *
     * @type {Entity}
     * @memberof EntityBundle
     */
    entity?: Entity;
    /**
     * Type of the Entity
     * @type {string}
     * @memberof EntityBundle
     */
    entityType?: EntityBundleEntityTypeEnum;
    /**
     *
     * @type {V2Annotations}
     * @memberof EntityBundle
     */
    annotations?: V2Annotations;
    /**
     *
     * @type {UserEntityPermissions}
     * @memberof EntityBundle
     */
    permissions?: UserEntityPermissions;
    /**
     *
     * @type {EntityPath}
     * @memberof EntityBundle
     */
    path?: EntityPath;
    /**
     * Whether or not this Entity has children
     * @type {boolean}
     * @memberof EntityBundle
     */
    hasChildren?: boolean;
    /**
     *
     * @type {AccessControlList}
     * @memberof EntityBundle
     */
    accessControlList?: AccessControlList;
    /**
     * FileHandles associated with this Entity
     * @type {Array<FileHandle>}
     * @memberof EntityBundle
     */
    fileHandles?: Array<FileHandle>;
    /**
     *
     * @type {TableBundle}
     * @memberof EntityBundle
     */
    tableBundle?: TableBundle;
    /**
     * Id of the root Wiki associated with this Entity
     * @type {string}
     * @memberof EntityBundle
     */
    rootWikiId?: string;
    /**
     *
     * @type {AccessControlList}
     * @memberof EntityBundle
     */
    benefactorAcl?: AccessControlList;
    /**
     *
     * @type {DoiAssociation}
     * @memberof EntityBundle
     */
    doiAssociation?: DoiAssociation;
    /**
     * If this Entity is a FileEntity, this is its filename
     * @type {string}
     * @memberof EntityBundle
     */
    fileName?: string;
    /**
     * Number of disucssion threads that reference this Entity
     * @type {number}
     * @memberof EntityBundle
     */
    threadCount?: number;
    /**
     *
     * @type {RestrictionInformationResponse}
     * @memberof EntityBundle
     */
    restrictionInformation?: RestrictionInformationResponse;
    /**
     *
     * @type {Activity}
     * @memberof EntityBundle
     */
    activity?: Activity;
}
/**
 * @export
 */
export declare const EntityBundleEntityTypeEnum: {
    readonly project: "project";
    readonly folder: "folder";
    readonly file: "file";
    readonly table: "table";
    readonly link: "link";
    readonly entityview: "entityview";
    readonly dockerrepo: "dockerrepo";
    readonly submissionview: "submissionview";
    readonly dataset: "dataset";
    readonly datasetcollection: "datasetcollection";
    readonly materializedview: "materializedview";
    readonly virtualtable: "virtualtable";
    readonly recordset: "recordset";
    readonly searchindex: "searchindex";
};
export type EntityBundleEntityTypeEnum = typeof EntityBundleEntityTypeEnum[keyof typeof EntityBundleEntityTypeEnum];
/**
 * Check if a given object implements the EntityBundle interface.
 */
export declare function instanceOfEntityBundle(value: object): value is EntityBundle;
export declare function EntityBundleFromJSON(json: any): EntityBundle;
export declare function EntityBundleFromJSONTyped(json: any, ignoreDiscriminator: boolean): EntityBundle;
export declare function EntityBundleToJSON(json: any): EntityBundle;
export declare function EntityBundleToJSONTyped(value?: EntityBundle | null, ignoreDiscriminator?: boolean): any;
