import { CourierDigestScheduleOption, CourierPreferencePage, CourierUserPreferences, CourierUserPreferencesChannel, CourierUserPreferencesStatus, CourierUserPreferencesTopic } from '../types/preference'; import { Client } from './client'; export declare class PreferenceClient extends Client { /** * Get all preferences for a user * @param paginationCursor - Optional cursor for pagination (not used in GraphQL implementation) * @returns Promise resolving to user preferences */ getUserPreferences(props?: { paginationCursor?: string; }): Promise; /** * Get preferences for a specific topic * @param topicId - The ID of the topic to get preferences for * @returns Promise resolving to topic preferences */ getUserPreferenceTopic(props: { topicId: string; }): Promise; /** * Update preferences for a specific topic * @param topicId - The ID of the topic to update preferences for * @param status - The new status for the topic * @param hasCustomRouting - Whether the topic has custom routing * @param customRouting - The custom routing channels for the topic * @returns Promise resolving to the updated topic preferences */ putUserPreferenceTopic(props: { topicId: string; status: CourierUserPreferencesStatus; hasCustomRouting: boolean; customRouting: CourierUserPreferencesChannel[]; digestSchedule?: string; }): Promise; /** * Get the published preference page for the current workspace. * * Returns workspace-configured sections, topics, channel label mappings, * and optional brand metadata. Combine with `getUserPreferences()` to * overlay the user's current per-topic preferences (status, custom routing, * digest schedule). * * @param accountId - Optional account/tenant ID. Falls back to the client's tenantId. * @param brandId - Optional brand ID to resolve brand colors/logo/links inline. * @returns The published preference page, or `null` if none is published. */ getPreferencePage(props?: { accountId?: string; brandId?: string; }): Promise; /** * Get the available digest schedules for a specific topic * @param topicId - The ID of the topic to get digest schedules for * @returns Promise resolving to an array of available digest schedule options */ getDigestSchedules(props: { topicId: string; }): Promise; /** * @deprecated The clientKey parameter is deprecated and will be removed in a future release. * * Get the notification center URL * @param clientKey - The client key to use for the URL * @returns The notification center URL */ getNotificationCenterUrl(props: { clientKey: string; }): string; /** * Transform a GraphQL RecipientPreference node to CourierUserPreferencesTopic */ private transformToTopic; /** * Transform a raw `preferencePage` GraphQL response into the public shape. */ private transformPreferencePage; }