export interface SDKOptions { host: string; apiKey: string; identifier?: string; } export type ErrorProps = { isNetworkError?: boolean; is400?: boolean; is401?: boolean; is403?: boolean; is404?: boolean; is500?: boolean; code?: string; message?: string; meta?: any; }; export enum Events { //Auth INITIATE_AUTHENTICATION = "INITIATE_AUTHENTICATION", AUTH_SUCCESS = "AUTH_SUCCESS", AUTH_FAILED = "AUTH_FAILED", // Member Acquisition RECORD_MEMBER_ACQUISITION = "RECORD_MEMBER_ACQUISITION", ACQUISITION_SUCCESS = "ACQUISITION_SUCCESS", ACQUISITION_FAILED = "ACQUISITION_FAILED", // Releases FETCH_RELEASES = "FETCH_RELEASES", FETCH_RELEASES_SUCCESS = "FETCH_RELEASES_SUCCESS", FETCH_RELEASES_FAILED = "FETCH_RELEASES_FAILED", // tutorials FETCH_TUTORIALS = "FETCH_TUTORIALS", FETCH_TUTORIALS_SUCCESS = "FETCH_TUTORIALS_SUCCESS", FETCH_TUTORIALS_FAILED = "FETCH_TUTORIALS_FAILED", // features FETCH_FEATURES = "FETCH_FEATURES", FETCH_FEATURES_SUCCESS = "FETCH_FEATURES_SUCCESS", FETCH_FEATURES_FAILED = "FETCH_FEATURES_FAILED", // feedback RECORD_FEEDBACK = "RECORD_FEEDBACK", RECORD_FEEDBACK_SUCCESS = "RECORD_FEEDBACK_SUCCESS", RECORD_FEEDBACK_FAILED = "RECORD_FEEDBACK_FAILED", // record metric RECORD_METRIC = "RECORD_METRIC", RECORD_METRIC_SUCCESS = "RECORD_METRIC_SUCCESS", RECORD_METRIC_FAILED = "RECORD_METRIC_FAILED", // update metric UPDATE_METRIC = "UPDATE_METRIC", UPDATE_METRIC_SUCCESS = "UPDATE_METRIC_SUCCESS", UPDATE_METRIC_FAILED = "UPDATE_METRIC_FAILED", } export interface CommonServicePayload { host: string; headers: HeadersInit; payload?: Record; } export interface RecordFeedBackPayload { featureDocumentId: string; rating: number; comment: string; } export interface UpdateMetricPayload { entityDocumentId: string; state: MetricState; entityType: EntityType; } export interface RecordMetricPayload { entityDocumentId: string; entityType: EntityType; } export enum EntityType { VIDEO_TUTORIAL = "video_tutorial", RELEASE = "new_release", // FEEDBACK = "feedback", @deprecated FEATURE = "feature", } export enum MetricState { INITIATED = "initiated", CANCELED = "canceled", COMPLETED = "completed", }