/** @packageDocumentation * @module iModelHubClient */ import { BeEvent } from "@bentley/bentleyjs-core"; import { AccessToken, AuthorizedClientRequestContext, RequestOptions, WsgInstance } from "@bentley/itwin-client"; import { IModelBaseHandler } from "./BaseHandler"; /** * Base class for event shared access signatures. * @public */ export declare abstract class BaseEventSAS extends WsgInstance { /** Base address for event requests. */ baseAddress?: string; /** SAS token used to authenticate for event requests. */ sasToken?: string; } /** Base type for all iModelHub global events * @public */ export declare abstract class IModelHubBaseEvent { /** Topic of this event. For [[IModelHubEvent]]s this is iModelId. */ eventTopic?: string; /** User that has sent this event. */ fromEventSubscriptionId?: string; /** User that is intended recipient of this event. iModelHub events always have this value empty. */ toEventSubscriptionId?: string; /** @internal */ protected _handler?: IModelBaseHandler; /** @internal */ protected _sasToken?: string; /** @internal */ protected _lockUrl?: string; /** * Constructor for an event to pass members required for non-destructive reads. * @param handler Base handler for WSG requests. * @param sasToken Token for authenticating for event requests. * @internal */ constructor(handler?: IModelBaseHandler, sasToken?: string); /** * Construct this event from object instance. * @param obj Object instance. * @internal */ fromJson(obj: any): void; /** * Remove a single event from queue. * @returns true if operation succeeded, false otherwise. */ delete(requestContext: AuthorizedClientRequestContext): Promise; } /** @internal */ export declare enum ModifyEventOperationToRequestType { /** Deleted event from queue */ Delete = "DELETE" } /** @internal */ export declare enum GetEventOperationToRequestType { /** Get event request options, destructive get. */ GetDestructive = "DELETE", /** Get event request options, non destructive get. */ GetPeek = "POST" } /** * Get base request options for event operations. * @param method Method for request. * @param sasToken Service Bus SAS Token. * @param requestTimeout Timeout for the request. * @return Event if it exists. * @internal */ export declare function getEventBaseOperationRequestOptions(handler: IModelBaseHandler, method: string, sasToken: string, requestTimeout?: number): Promise; /** @internal */ export declare abstract class EventBaseHandler { protected _handler: IModelBaseHandler; /** Get service bus parser depending on the environment. */ protected setServiceBusOptions(options: RequestOptions): void; /** * Get event request options, gets event from queue. * @param sasToken Service Bus SAS Token. * @param requestTimeout Timeout for the request. * @return Event if it exists. */ protected getEventRequestOptions(operation: GetEventOperationToRequestType, sasToken: string, requestTimeout?: number): Promise; } /** @internal */ export declare class ListenerSubscription { listeners: BeEvent<(event: IModelHubBaseEvent) => void>; authenticationCallback: () => Promise; getEvent: (token: string, baseAddress: string, subscriptionId: string, timeout?: number) => Promise; getSASToken: (requestContext: AuthorizedClientRequestContext) => Promise; id: string; } /** @internal */ export declare class EventListener { private static _subscriptions; /** @internal */ static create(subscription: ListenerSubscription, listener: (event: IModelHubBaseEvent) => void): () => void; private static getEvents; } //# sourceMappingURL=EventsBase.d.ts.map