import { IAuthProvider } from "../typings/IAuthProvider"; import { IClusterClientProvider } from "../typings/IClusterClientProvider"; import { Contact, ContactSettings, DeliverySchedule, ContactAddress } from "./Contact"; import { IClusterClientResponse } from "../typings/IClusterClient"; export declare type TargetType = "userId" | "organizationId" | "organizationGroupId"; export declare type ContactBindInfo = { "user-id": string; status?: string; address: ContactAddress; "channel-group-id": string; "origin-contact-id"?: string; timezone?: string; schedule?: DeliverySchedule; }; export declare type SubscriptionsQuery = { userId: string | null; contactId: string | null; targetType: TargetType | null; targetId: string | null; channelGroupId: string | null; channels: string | null; tags: string | null; }; export declare type SubscriptionInfo = { "contact-id": string; "target-type": TargetType | null; "target-id": string | null; "channel-id": string; enabled: boolean | null; }; export declare type SubscriptionTarget = { "target-type": TargetType; "target-id": string | null; }; export interface SubscriptionsClientDeps { authProvider: IAuthProvider; clusterClientProvider: IClusterClientProvider; } export declare class SubscriptionsClient { private _http; constructor({clusterClientProvider, authProvider}: SubscriptionsClientDeps); getContacts(userId: string | null, addressType: string | null, channelGroupId: string | null): Promise>; bindContact(bindInfo: ContactBindInfo): Promise>; getContact(userId: string, contactId: string): Promise>; updateContactSettings(userId: string, contactId: string, channelGroupId: string, contactSettings: ContactSettings): Promise>; removeContactSettings(userId: string, contactId: string, channelGroupId: string): Promise>; requestConfirmation(userId: string, contactId: string, channelGroupId?: string): Promise>; confirmEmail(userId: string, contactId: string, confirmCode: string, channelGroupId?: string): Promise>; getContactsByTargetSubscriptions(targetType: string, targetId: string, addressType?: string, channelGroupId?: string): Promise>; getTelegramUserInfo(telegramUserId: string): Promise>; getViberUserInfo(viberUserId: string): Promise>; getSubscriptions(query: SubscriptionsQuery): Promise>; changeSubscriptions(subscriptionChangeInfos: Array): Promise>; checkSubscription(userId: string, contactId: string, channelId: string, subscriptionTargets?: Array): Promise>; }