UNPKG

@freshworks/react-native-freshdesk-sdk

Version:
167 lines 7.25 kB
import type { EmitterSubscription } from 'react-native'; import type { FreshdeskConfig, TopicInfo, UserProperties, TicketProperties, EventProperties, UnreadCountEvent, UserStateEvent, LinkPressedEvent, UserCreatedEvent, ResetUserResult, ContentConfiguration, UserData, DiagnosticReport } from './types'; export { FreshdeskEvents } from './events'; export type { FreshdeskEventName } from './events'; export type { FreshdeskConfig, TopicInfo, UserProperties, TicketProperties, EventProperties, UnreadCountEvent, UserStateEvent, LinkPressedEvent, UserCreatedEvent, ResetUserResult, ContentConfiguration, HeaderContent, PlaceholderContent, PrivacyPolicyContent, ActionContent, ChannelResponseContent, ChannelResponseOnline, ChannelResponseTimeUnit, TicketFormContent, UserData, SDKVersion, DiagnosticStatus, DiagnosticCheck, DiagnosticReport, } from './types'; export { UserState, FreshdeskErrorCode } from './types'; export { formatDiagnosticReport, parseDiagnosticReport } from './diagnostics'; export { normalizeFreshdeskHost, isBareFreshdeskHost } from './utils/normalizeHost'; /** * Initialize the Freshdesk SDK with configuration * Must be called before any other SDK methods * @param config SDK configuration */ export declare function initialize(config: FreshdeskConfig): Promise<void>; /** * Open the Freshdesk support home screen */ export declare function openSupport(): Promise<void>; /** * Open the Freshdesk knowledge base / FAQ screen */ export declare function openKnowledgeBase(): Promise<void>; /** * Open a specific support topic * @param topic Topic information (name and optional ID) */ export declare function openTopic(topic: TopicInfo): Promise<void>; /** * Get the current unread message count * * Platform note: on Android this resolves a cached, broadcast-driven value and * is `0` until the first broadcast arrives after `initialize()`; on iOS it is * live. Prefer {@link addUnreadCountListener} for a value you can trust * immediately on both platforms. See PLATFORM_DIFFERENCES.md. * * @returns Promise resolving to the unread count */ export declare function getUnreadCount(): Promise<number>; /** * Track a user event for analytics and context * @param name Event name * @param properties Event properties */ export declare function trackEvent(name: string, properties?: EventProperties): Promise<void>; /** * Set user properties (only for non-JWT enforced SDKs) * @param properties User properties */ export declare function setUserProperties(properties: UserProperties): Promise<void>; /** * Set ticket properties * @param properties Ticket properties */ export declare function setTicketProperties(properties: TicketProperties): Promise<void>; /** * Authenticate or update user with JWT token * @param jwt JWT token */ export declare function authenticateAndUpdate(jwt: string): Promise<void>; /** * Reset the current user and clear session data * Call this when user logs out * * Platform note: Android can resolve `{ success: false, error }` on a genuine * reset failure; iOS's native SDK has no failure callback for this operation * and always resolves `{ success: true }` once initialized (it only rejects * for the not-initialized usage error). Don't rely on `success: false` as a * cross-platform signal. See PLATFORM_DIFFERENCES.md. */ export declare function resetUser(): Promise<ResetUserResult>; /** * Dismiss any open Freshdesk views */ export declare function dismiss(): Promise<void>; /** * Set a custom link handler * When a link is pressed in the SDK, an event will be emitted * @param handler Callback function to handle link presses * @returns EmitterSubscription to remove the listener */ export declare function setLinkHandler(handler: (event: LinkPressedEvent) => void): EmitterSubscription | null; /** * Add a listener for unread count changes * @param listener Callback function receiving the unread count * @returns EmitterSubscription to remove the listener */ export declare function addUnreadCountListener(listener: (event: UnreadCountEvent) => void): EmitterSubscription | null; /** * Add a listener for user state changes * @param listener Callback function receiving the user state * @returns EmitterSubscription to remove the listener */ export declare function addUserStateListener(listener: (event: UserStateEvent) => void): EmitterSubscription | null; /** * Add a listener for user creation events * @param listener Callback function receiving user creation event * @returns EmitterSubscription to remove the listener */ export declare function addUserCreatedListener(listener: (event: UserCreatedEvent) => void): EmitterSubscription | null; /** * Remove all Freshdesk event listeners * Call this when cleaning up (e.g., on component unmount) */ export declare function removeAllListeners(): void; /** * Get the SDK version string * @returns Promise resolving to SDK version (e.g., "1.0.1") */ export declare function getSDKVersion(): Promise<string>; /** * Get the current user information from the SDK * @returns Promise resolving to user data object */ export declare function getUser(): Promise<UserData>; /** * Set content configuration to customize SDK UI text * @param config Content configuration for headers, placeholders, etc. */ export declare function setContentConfiguration(config: ContentConfiguration): Promise<void>; /** * Enable or disable Freshdesk SDK debug logs * * Platform note: reliable at runtime on iOS only. On Android, debug logging * can only be set at `initialize()` time (`debugMode: true`); calling this * afterward is a no-op there. See PLATFORM_DIFFERENCES.md. * * @param enabled Whether debug logging should be enabled */ export declare function enableDebugLogs(enabled: boolean): Promise<void>; /** * Run Freshdesk SDK diagnostics and return a structured report */ export declare function runDiagnostics(): Promise<DiagnosticReport>; /** * Freshdesk SDK object for convenient access */ export declare const FreshdeskSDK: { initialize: typeof initialize; openSupport: typeof openSupport; openKnowledgeBase: typeof openKnowledgeBase; openTopic: typeof openTopic; getUnreadCount: typeof getUnreadCount; trackEvent: typeof trackEvent; setUserProperties: typeof setUserProperties; setTicketProperties: typeof setTicketProperties; authenticateAndUpdate: typeof authenticateAndUpdate; resetUser: typeof resetUser; dismiss: typeof dismiss; setLinkHandler: typeof setLinkHandler; addUnreadCountListener: typeof addUnreadCountListener; addUserStateListener: typeof addUserStateListener; addUserCreatedListener: typeof addUserCreatedListener; removeAllListeners: typeof removeAllListeners; getSDKVersion: typeof getSDKVersion; getUser: typeof getUser; setContentConfiguration: typeof setContentConfiguration; enableDebugLogs: typeof enableDebugLogs; runDiagnostics: typeof runDiagnostics; events: { readonly UNREAD_COUNT_CHANGED: "unreadCountChanged"; readonly USER_STATE_CHANGED: "userStateChanged"; readonly USER_CREATED: "userCreated"; readonly ON_LINK_PRESSED: "onLinkPressed"; }; }; export default FreshdeskSDK; //# sourceMappingURL=index.d.ts.map