export interface IBlazeResult {
  error: IBlazeError;
}
export interface IBlazeError {
  domain?: BlazeErrorDomain;
  reason?: BlazeErrorReason;
  message?: string;
}

enum BlazeErrorReason {
  INVALID_API_KEY = 'invalidApiKey',
  NETWORK_FAILURE = 'networkFailure',
  ALREADY_INITIALIZED = 'alreadyInitialized',
  INITIALIZATION_REQUIRED = 'initializationIsRequired',
  NO_RESULTS_FOR_DATA_SOURCE_TYPE = 'noResultsForGivenDataSourceType',
  INVALID_DATA_SOURCE_TYPE_PROVIDED = 'invalidDataSourceTypeProvided',
  SDK_INITIALIZATION_ERROR = 'sdkInitializationError',
  FAILED_UPDATING_LIKE = 'failedUpdatingLike',
  SETTING_EXTERNAL_ID_LIKE = 'settingExternalIdFailed',
}

enum BlazeErrorDomain {
  GENERAL = 'general',
  INITIALIZATION = 'initialization',
  CONTENT_PREPARATION = 'contentPreparation',
  WIDGET = 'widget',
  ENTRY_POINT = 'entryPoint',
  USER_MANAGEMENT = 'userManagement',
  UNIVERSAL_LINK = 'universalLink',
}
