import basem = require('./ClientApiBases'); import VsoBaseInterfaces = require('./interfaces/common/VsoBaseInterfaces'); import NotificationInterfaces = require("./interfaces/NotificationInterfaces"); import VSSInterfaces = require("./interfaces/common/VSSInterfaces"); export interface INotificationApi extends basem.ClientApiBase { performBatchNotificationOperations(operation: NotificationInterfaces.BatchNotificationOperation): Promise; getNotificationTracing(subscriptionId: string): Promise; updateNotificationTracing(setParameters: NotificationInterfaces.NotificationTracingSetParameters, subscriptionId: string): Promise; publishEvent(notificationEvent: VSSInterfaces.VssNotificationEvent): Promise; queryEventTypes(inputValuesQuery: NotificationInterfaces.FieldValuesQuery, eventType: string): Promise; getEventType(eventType: string): Promise; listEventTypes(publisherId?: string): Promise; getNotificationReasons(notificationId: number): Promise; listNotificationReasons(notificationIds?: number): Promise; getSubscriber(subscriberId: string): Promise; updateSubscriber(updateParameters: NotificationInterfaces.NotificationSubscriberUpdateParameters, subscriberId: string): Promise; querySubscriptions(subscriptionQuery: NotificationInterfaces.SubscriptionQuery): Promise; createSubscription(createParameters: NotificationInterfaces.NotificationSubscriptionCreateParameters): Promise; deleteSubscription(subscriptionId: string): Promise; getSubscription(subscriptionId: string, queryFlags?: NotificationInterfaces.SubscriptionQueryFlags): Promise; listSubscriptions(targetId?: string, ids?: string[], queryFlags?: NotificationInterfaces.SubscriptionQueryFlags): Promise; updateSubscription(updateParameters: NotificationInterfaces.NotificationSubscriptionUpdateParameters, subscriptionId: string): Promise; getSubscriptionTemplates(): Promise; updateSubscriptionUserSettings(userSettings: NotificationInterfaces.SubscriptionUserSettings, subscriptionId: string, userId: string): Promise; } export declare class NotificationApi extends basem.ClientApiBase implements INotificationApi { constructor(baseUrl: string, handlers: VsoBaseInterfaces.IRequestHandler[], options?: VsoBaseInterfaces.IRequestOptions); /** * @param {NotificationInterfaces.BatchNotificationOperation} operation */ performBatchNotificationOperations(operation: NotificationInterfaces.BatchNotificationOperation): Promise; /** * @param {string} subscriptionId */ getNotificationTracing(subscriptionId: string): Promise; /** * @param {NotificationInterfaces.NotificationTracingSetParameters} setParameters * @param {string} subscriptionId */ updateNotificationTracing(setParameters: NotificationInterfaces.NotificationTracingSetParameters, subscriptionId: string): Promise; /** * Publish an event. * * @param {VSSInterfaces.VssNotificationEvent} notificationEvent */ publishEvent(notificationEvent: VSSInterfaces.VssNotificationEvent): Promise; /** * @param {NotificationInterfaces.FieldValuesQuery} inputValuesQuery * @param {string} eventType */ queryEventTypes(inputValuesQuery: NotificationInterfaces.FieldValuesQuery, eventType: string): Promise; /** * Get a specific event type. * * @param {string} eventType */ getEventType(eventType: string): Promise; /** * List available event types for this service. Optionally filter by only event types for the specified publisher. * * @param {string} publisherId - Limit to event types for this publisher */ listEventTypes(publisherId?: string): Promise; /** * @param {number} notificationId */ getNotificationReasons(notificationId: number): Promise; /** * @param {number} notificationIds */ listNotificationReasons(notificationIds?: number): Promise; /** * @param {string} subscriberId */ getSubscriber(subscriberId: string): Promise; /** * @param {NotificationInterfaces.NotificationSubscriberUpdateParameters} updateParameters * @param {string} subscriberId */ updateSubscriber(updateParameters: NotificationInterfaces.NotificationSubscriberUpdateParameters, subscriberId: string): Promise; /** * Query for subscriptions. A subscription is returned if it matches one or more of the specified conditions. * * @param {NotificationInterfaces.SubscriptionQuery} subscriptionQuery */ querySubscriptions(subscriptionQuery: NotificationInterfaces.SubscriptionQuery): Promise; /** * Create a new subscription. * * @param {NotificationInterfaces.NotificationSubscriptionCreateParameters} createParameters */ createSubscription(createParameters: NotificationInterfaces.NotificationSubscriptionCreateParameters): Promise; /** * Delete a subscription. * * @param {string} subscriptionId */ deleteSubscription(subscriptionId: string): Promise; /** * Get a notification subscription by its ID. * * @param {string} subscriptionId * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags */ getSubscription(subscriptionId: string, queryFlags?: NotificationInterfaces.SubscriptionQueryFlags): Promise; /** * @param {string} targetId * @param {string[]} ids * @param {NotificationInterfaces.SubscriptionQueryFlags} queryFlags */ listSubscriptions(targetId?: string, ids?: string[], queryFlags?: NotificationInterfaces.SubscriptionQueryFlags): Promise; /** * Update an existing subscription. Depending on the type of subscription and permissions, the caller can update the description, filter settings, channel (delivery) settings and more. * * @param {NotificationInterfaces.NotificationSubscriptionUpdateParameters} updateParameters * @param {string} subscriptionId */ updateSubscription(updateParameters: NotificationInterfaces.NotificationSubscriptionUpdateParameters, subscriptionId: string): Promise; /** * Get available subscription templates. * */ getSubscriptionTemplates(): Promise; /** * Update the specified user's settings for the specified subscription. This API is typically used to opt in or out of a shared subscription. User settings can only be applied to shared subscriptions, like team subscriptions or default subscriptions. * * @param {NotificationInterfaces.SubscriptionUserSettings} userSettings * @param {string} subscriptionId * @param {string} userId - ID of the user */ updateSubscriptionUserSettings(userSettings: NotificationInterfaces.SubscriptionUserSettings, subscriptionId: string, userId: string): Promise; }