import { ImpactPublisher, ImpactUser } from "../data";
export interface UserInfoFormViewProps {
  states: {
    step?: string;
    loading: boolean;
    disabled: boolean;
    isPartner: boolean;
    isUser: boolean;
    hideSteps: boolean;
    hideState: boolean;
    loadingError?: boolean;
    formState: {
      firstName?: string;
      lastName?: string;
      email?: string;
      address?: string;
      city?: string;
      state?: string;
      postalCode?: string;
      phoneNumber?: string;
      phoneNumberCountryCode?: string;
      countryCode?: string;
      currency?: string;
      allowBankingCollection?: boolean;
      errors?: {
        general?: string;
        firstName?: string;
        lastName?: string;
        countryCode?: string;
        currency?: string;
        address?: string;
        city?: string;
        state?: string;
        postalCode?: string;
        phoneNumberCountryCode?: string;
        phoneNumber?: string;
        allowBankingCollection?: string;
      };
      error?: string;
    };
  };
  data: {
    regionLabelEnum: "STATE" | "REGION" | "PROVINCE" | undefined;
    regions: {
      label: string;
      value: string;
    }[];
    countries: {
      countryCode: string;
      displayName: string;
    }[];
    phoneCountries: {
      countryCode: string;
      displayName: string;
    }[];
    allCountries: {
      countryCode: string;
      displayName: string;
    }[];
    allCurrencies: {
      currencyCode: string;
      displayName: string;
    }[];
    currencies: {
      currencyCode: string;
      displayName: string;
    }[];
    partnerData?: ImpactPublisher;
    userData?: ImpactUser;
  };
  callbacks: {
    setCurrencySearch: (c: any) => void;
    setCountrySearch: (c: any) => void;
    setPhoneCountrySearch: (c: any) => void;
    onSubmit: (props: any) => void;
    onFormChange: (field: string, e: CustomEvent) => void;
  };
  text: {
    formStep: string;
    firstName: string;
    lastName: string;
    email: string;
    country: string;
    phoneNumber: string;
    address: string;
    city: string;
    state: string;
    province: string;
    region: string;
    postalCode: string;
    currency: string;
    currencyHelpText: string;
    allowBankingCollection: string;
    personalInformation: string;
    continueButton: string;
    isPartnerAlertHeader: string;
    isPartnerAlertDescription: string;
    termsAndConditionsLabel: string;
    termsAndConditionsLink: string;
    taxAndPayoutsDescription: string;
    supportLink: string;
    error: {
      generalTitle: string;
      generalDescription: string;
      invalidCharacterError: string;
      fieldRequiredError: string;
      fieldInvalidError: string;
      loadingErrorAlertHeader: string;
      loadingErrorAlertDescription: string;
    };
    searchForCountryText: string;
    searchForCurrencyText: string;
  };
  refs: {
    formRef: any;
    currencyRef: any;
    phoneCountryRef: any;
  };
}
export declare const UserInfoFormView: (props: UserInfoFormViewProps) => any;
