import * as React from 'react';

type blitzType = {
  init: (app_key: string, enable_logs?: boolean) => Promise<void>;
  createUser: (user_id: string) => Promise<void>;
  setUserName: (user_name: string) => Promise<void>;
  setUserEmail: (user_email: string) => Promise<void>;
  setUserAttribute: (
    filter: string,
    filter_value: string | boolean | number,
    data_type: string,
  ) => Promise<void>;
  setSurveyLanguage: (lang: string) => Promise<void>;
  setCustomFont: (regular_font: string, bold_font?: string) => Promise<void>;
  subscribeEvent: (
    event_name: string,
    callback_fn: (data: any) => void,
  ) => Promise<void>;
  setUserProperties: (properties: object) => Promise<void>;
  activeTriggers: () => Promise<Array<string>>;
  personalize: (options: {theme?: string}) => Promise<void>;
  logout: () => void;
};

declare const Blitzllama: React.FunctionComponent<{
  trigger: string;
  showSurvey: boolean;
  closeSurvey?: () => void;
  event_properties?: Record<string, any>;
}>;

export declare const blitz: blitzType;

export default Blitzllama;
