/**
 * 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.
 */
/**
 * The Thread model object represents a single Thread.
 * @export
 * @interface DiscussionThreadBundle
 */
export interface DiscussionThreadBundle {
    /**
     * The ID of the Thread
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    id?: string;
    /**
     * The ID of the forum this Thread belongs to
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    forumId?: string;
    /**
     * The ID of the project this Thread belongs to
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    projectId?: string;
    /**
     * The ID of the object this Thread belongs to
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    objectId?: string;
    /**
     * The type of object to which a Forum is associated.
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    objectType?: DiscussionThreadBundleObjectTypeEnum;
    /**
     * The title of the Thread
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    title?: string;
    /**
     * The timestamp when this Thread was created
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    createdOn?: string;
    /**
     * The id of the user that created this Thread
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    createdBy?: string;
    /**
     * The timestamp when this Thread was last modified
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    modifiedOn?: string;
    /**
     * Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date.
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    etag?: string;
    /**
     * The S3 key where the actual message stored
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    messageKey?: string;
    /**
     * The number of unique users who has viewed this thread
     * @type {number}
     * @memberof DiscussionThreadBundle
     */
    numberOfViews?: number;
    /**
     * The number of replies to this thread
     * @type {number}
     * @memberof DiscussionThreadBundle
     */
    numberOfReplies?: number;
    /**
     * The timestamp when the last activity occurs on this Thread
     * @type {string}
     * @memberof DiscussionThreadBundle
     */
    lastActivity?: string;
    /**
     * The list of userId whose most active on this Thread
     * @type {Array<string>}
     * @memberof DiscussionThreadBundle
     */
    activeAuthors?: Array<string>;
    /**
     * Has the author edited this Thread?
     * @type {boolean}
     * @memberof DiscussionThreadBundle
     */
    isEdited?: boolean;
    /**
     * Has this Thread been deleted?
     * @type {boolean}
     * @memberof DiscussionThreadBundle
     */
    isDeleted?: boolean;
    /**
     * Has this Thread been pinned?
     * @type {boolean}
     * @memberof DiscussionThreadBundle
     */
    isPinned?: boolean;
}
/**
 * @export
 */
export declare const DiscussionThreadBundleObjectTypeEnum: {
    readonly ENTITY: "ENTITY";
    readonly ACCESS_REQUIREMENT: "ACCESS_REQUIREMENT";
};
export type DiscussionThreadBundleObjectTypeEnum = typeof DiscussionThreadBundleObjectTypeEnum[keyof typeof DiscussionThreadBundleObjectTypeEnum];
/**
 * Check if a given object implements the DiscussionThreadBundle interface.
 */
export declare function instanceOfDiscussionThreadBundle(value: object): value is DiscussionThreadBundle;
export declare function DiscussionThreadBundleFromJSON(json: any): DiscussionThreadBundle;
export declare function DiscussionThreadBundleFromJSONTyped(json: any, ignoreDiscriminator: boolean): DiscussionThreadBundle;
export declare function DiscussionThreadBundleToJSON(json: any): DiscussionThreadBundle;
export declare function DiscussionThreadBundleToJSONTyped(value?: DiscussionThreadBundle | null, ignoreDiscriminator?: boolean): any;
