import RNInsiderIdentifier from './InsiderIdentifier'; import type { InsiderObject } from './InsiderObject'; declare class RNInsiderUser { setGender(value: number): this; setBirthday(value: Date): this; setName(value: string): this; setSurname(value: string): this; setAge(value: number): this; setEmail(value: string): this; setPhoneNumber(value: string): this; setLanguage(value: string): this; setLocale(value: string): this; setFacebookID(value: string): this; setTwitterID(value: string): this; setEmailOptin(value: boolean): this; setSMSOptin(value: boolean): this; setPushOptin(value: boolean): this; setLocationOptin(value: boolean): this; setWhatsappOptin(value: boolean): this; setPromotionalOptin(value: boolean): this; login(identifiers: RNInsiderIdentifier, insiderIDResult?: (insiderID: string | null) => void): this; logout(): this; logoutResettingInsiderID(identifiers?: RNInsiderIdentifier[] | null, insiderIDResult?: (insiderID: string | null) => void): this; setCustomAttributeWithString(key: string, value: string): this; setCustomAttributeWithInt(key: string, value: number): this; setCustomAttributeWithDouble(key: string, value: number): this; setCustomAttributeWithBoolean(key: string, value: boolean): this; setCustomAttributeWithDate(key: string, value: Date): this; setCustomAttributeWithArray(key: string, value: string[]): this; /** * Appends objects to an array-of-objects attribute. A single object is accepted and sent as a * one-element list. A list that carries nothing to write - empty, or emptied by validation - is * not sent, and says so in a console warning. */ addObjectsToCustomAttribute(key: string, objects: InsiderObject | InsiderObject[]): this; /** * Merges `value` into every object of the attribute that matches `match`. * Both sides are mandatory: an empty match would apply to every object, and an empty value has * nothing to merge, so either one is refused with a console warning. */ mergeObjectsInCustomAttribute(key: string, match: InsiderObject, value: InsiderObject): this; /** * Removes every object of the attribute that matches `match`. * * Two overloads on purpose: the one-argument form is the deliberate remove-all and cannot be * undone, so `null` is not part of the match type and a match left undefined by an unset variable * fails to compile instead of deleting the attribute. An empty object still has to be refused at * runtime, since the type system cannot rule it out. */ removeObjectsFromCustomAttribute(key: string): this; removeObjectsFromCustomAttribute(key: string, match: InsiderObject): this; unsetCustomAttribute(key: string): this; } export default RNInsiderUser;