import { UserInstance, CustomField } from './interfaces';
/**
 * The SallaUserProfile is a versatile user profile form
 * generator within the Salla platform, offering localization support,
 * customizable fields, and seamless integration with the Salla API.
 * It dynamically fetches translated strings for labels and messages from the
 * Salla localization object, allowing for a multilingual user interface. Users
 * can extend the default form with custom fields through the `customFields`
 * property and the setCustomFields method. The component manages user data
 * retrieval from the Salla configuration and includes fields for first name,
 * last name, birthday, gender, email, mobile, and custom additions. Form
 * validation and submission are handled through various event handlers, ensuring
 * proper field handling and user input validation. The component supports file
 * uploads for photo fields and includes a dedicated phone number input field.
 * The componentWillLoad lifecycle method fetches additional user profile
 * information from the API during initialization. Overall, this component
 * provides an efficient and adaptable solution for creating user profiles with a
 * rich set of features and customization options.
 */
export declare class SallaUserProfile {
  constructor();
  /**
   * Custome fields to be rendered in addition to the default ones.
   */
  customFields: string;
  /**
   * The minimum allowed age for a user. Users with a birthdate indicating an age less than this value will be considered invalid.
   * Defaults to 10.
   * @type {number}
   */
  minAge: number;
  userData: UserInstance;
  userDefinedFields: CustomField[];
  disableAction: boolean;
  isLoading: boolean;
  first_name_trans: any;
  last_name_trans: any;
  birthday_trans: any;
  birthday_placeholder_trans: any;
  gender_trans: any;
  gender_placeholder_trans: any;
  male_trans: any;
  female_trans: any;
  email_trans: any;
  mobile_trans: any;
  save_btn_trans: any;
  drag_and_drop_trans: any;
  browse_trans: any;
  email_required_trans: any;
  invalid_email_trans: any;
  /**
   * Sets custom fields for the component. Can be handy for non HTML usage.
   *
   * @param fields - An array of custom fields.
   */
  setCustomFields(fields: CustomField[]): Promise<void>;
  private phoneNumberFieldEventHandler;
  private handleFieldChange;
  private handleOnFileAdded;
  private handleEmailInput;
  private trimLanguageCodeFromUrl;
  private getFileUploadUrl;
  private renderCustomFields;
  private submitForm;
  private getBirthDateRestriction;
  private fetchData;
  private renderLoadingSection;
  render(): any;
  componentWillLoad(): void;
}
