import { Codec, GetType } from 'purify-ts'; import { HttpClient, RequestMeta } from '../http'; /** * Amazon docs list these as the only possible choices for each parameters */ export declare type DeliveryChannel = 'SQS'; export declare type AttributeKeyValueKeys = 'sqsQueueUrl'; export declare type NotificationType = 'AnyOfferChanged' | 'FeedProcessingFinished' | 'FeePromotion' | 'FulfillmentOrderStatus' | 'ReportProcessingFinished'; export interface Destination { DeliveryChannel: DeliveryChannel; AttributeList: AttributeKeyValue[]; } export interface AttributeKeyValue { Key: AttributeKeyValueKeys; Value: string; } export interface Subscription { NotificationType: NotificationType; Destination: Destination; IsEnabled: boolean; } export interface SubscriptionActionParameters { MarketplaceId: string; NotificationType: NotificationType; Destination: Destination; } export declare type DeleteSubscriptionParameters = SubscriptionActionParameters; export interface MarketplaceIdAndDestinationOnlyParameters { MarketplaceId: string; Destination: Destination; } export declare type RegisterDestinationParameters = MarketplaceIdAndDestinationOnlyParameters; export declare type DeregisterDestinationParameters = MarketplaceIdAndDestinationOnlyParameters; export interface ListRegisteredDestinationsParameters { MarketplaceId: string; } export interface UpdateSubscriptionParameters { MarketplaceId: string; Subscription: Subscription; } export declare type GetSubscriptionParameters = SubscriptionActionParameters; export declare enum NotificationTypeEnum { AnyOfferChanged = "AnyOfferChanged", FeedProcessingFinished = "FeedProcessingFinished", FeePromotion = "FeePromotion", FulfillmentOrderStatus = "FulfillmentOrderStatus", ReportProcessingFinished = "ReportProcessingFinished" } export declare enum AttribueKeyValueKeysEnum { sqsQueueUrl = "sqsQueueUrl" } export declare enum DeliveryChannelEnum { SQS = "SQS" } export declare const ListRegisteredDestinations: Codec<{ DestinationList: { DeliveryChannel: DeliveryChannelEnum.SQS; AttributeList: { Value: string; Key: AttribueKeyValueKeysEnum.sqsQueueUrl; }[]; }[]; }>; export declare type SendTestNotificationToDestinationParameters = MarketplaceIdAndDestinationOnlyParameters; export interface CreateSubscriptionParameters { MarketplaceId: string; Subscription: Subscription; } export declare const Subscription: Codec<{ NotificationType: NotificationTypeEnum; Destination: { DeliveryChannel: DeliveryChannelEnum.SQS; AttributeList: { Value: string; Key: AttribueKeyValueKeysEnum.sqsQueueUrl; }[]; }; IsEnabled: boolean; }>; export declare const GetSubscription: Codec<{ Subscription: { NotificationType: NotificationTypeEnum; Destination: { DeliveryChannel: DeliveryChannelEnum.SQS; AttributeList: { Value: string; Key: AttribueKeyValueKeysEnum.sqsQueueUrl; }[]; }; IsEnabled: boolean; }; }>; export declare type ListRegisteredDestinations = GetType; export declare type GetSubscription = GetType; export declare class Subscriptions { private httpClient; constructor(httpClient: HttpClient); updateSubscription(parameters: UpdateSubscriptionParameters): Promise<['', RequestMeta]>; deleteSubscription(parameters: DeleteSubscriptionParameters): Promise<['', RequestMeta]>; getSubscription(parameters: GetSubscriptionParameters): Promise<[GetSubscription, RequestMeta]>; createSubscription(parameters: CreateSubscriptionParameters): Promise<['', RequestMeta]>; sendTestNotificationToDestination(parameters: SendTestNotificationToDestinationParameters): Promise<['', RequestMeta]>; listRegisteredDestinations(parameters: ListRegisteredDestinationsParameters): Promise<[ListRegisteredDestinations, RequestMeta]>; deregisterDestination(parameters: DeregisterDestinationParameters): Promise<['', RequestMeta]>; registerDestination(parameters: RegisterDestinationParameters): Promise<['', RequestMeta]>; getServiceStatus(): Promise<[{ Status: import("../parsing").ServiceStatus; Timestamp: string; }, RequestMeta]>; }