/**
 * 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.
 */
/**
 * An object that serves as registration for a Synapse user to receive events for the specified event.
 * @export
 * @interface Webhook
 */
export interface Webhook {
    /**
     * The ID associated with the Webhook. This field is issued by Synapse and cannot be changed by the user.
     * @type {string}
     * @memberof Webhook
     */
    id?: string;
    /**
     * The ID of the user that created this webhook.
     * @type {string}
     * @memberof Webhook
     */
    createdBy?: string;
    /**
     * The date this webhook was created.
     * @type {string}
     * @memberof Webhook
     */
    createdOn?: string;
    /**
     * The date this webhook was last modified.
     * @type {string}
     * @memberof Webhook
     */
    modifiedOn?: string;
    /**
     * The ID of the Synapse object to receive events of.
     * @type {string}
     * @memberof Webhook
     */
    objectId?: string;
    /**
     * The supported synapse object types for a Webhook
     * @type {string}
     * @memberof Webhook
     */
    objectType?: WebhookObjectTypeEnum;
    /**
     * The set of event types to subscribe to.
     * @type {Set<string>}
     * @memberof Webhook
     */
    eventTypes?: Set<WebhookEventTypesEnum>;
    /**
     * The endpoint the Synapse user would like the webhook events sent to on invocation. Must be 255 Characters or less.
     * @type {string}
     * @memberof Webhook
     */
    invokeEndpoint?: string;
    /**
     * True if the Synapse user has selected to receive events. If the user sets to false, events will be temporalily paused.
     * @type {boolean}
     * @memberof Webhook
     */
    isEnabled?: boolean;
    /**
     * JSON enum for the verification status of a Webhook.
     * @type {string}
     * @memberof Webhook
     */
    verificationStatus?: WebhookVerificationStatusEnum;
    /**
     * A message describing the reason of the verification status
     * @type {string}
     * @memberof Webhook
     */
    verificationMsg?: string;
}
/**
 * @export
 */
export declare const WebhookObjectTypeEnum: {
    readonly ENTITY: "ENTITY";
};
export type WebhookObjectTypeEnum = typeof WebhookObjectTypeEnum[keyof typeof WebhookObjectTypeEnum];
/**
 * @export
 */
export declare const WebhookEventTypesEnum: {
    readonly CREATE: "CREATE";
    readonly UPDATE: "UPDATE";
    readonly DELETE: "DELETE";
};
export type WebhookEventTypesEnum = typeof WebhookEventTypesEnum[keyof typeof WebhookEventTypesEnum];
/**
 * @export
 */
export declare const WebhookVerificationStatusEnum: {
    readonly PENDING: "PENDING";
    readonly CODE_SENT: "CODE_SENT";
    readonly FAILED: "FAILED";
    readonly REVOKED: "REVOKED";
    readonly VERIFIED: "VERIFIED";
};
export type WebhookVerificationStatusEnum = typeof WebhookVerificationStatusEnum[keyof typeof WebhookVerificationStatusEnum];
/**
 * Check if a given object implements the Webhook interface.
 */
export declare function instanceOfWebhook(value: object): value is Webhook;
export declare function WebhookFromJSON(json: any): Webhook;
export declare function WebhookFromJSONTyped(json: any, ignoreDiscriminator: boolean): Webhook;
export declare function WebhookToJSON(json: any): Webhook;
export declare function WebhookToJSONTyped(value?: Webhook | null, ignoreDiscriminator?: boolean): any;
