/**
 * Synapse REST API
 * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
 *
 * The version of the OpenAPI document: v1
 *
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */
import type { TermsOfServiceAgreement } from './TermsOfServiceAgreement';
import type { Settings } from './Settings';
import type { UserPreferenceBoolean } from './UserPreferenceBoolean';
/**
 * JSON schema for UserProfile POJO
 * @export
 * @interface UserProfile
 */
export interface UserProfile {
    /**
     * A foreign key to the ID of the 'principal' object for the user.
     * @type {string}
     * @memberof UserProfile
     */
    ownerId?: string;
    /**
     * Synapse employs an Optimistic Concurrency Control (OCC) scheme to handle concurrent updates. Since the E-Tag changes every time an entity is updated it is used to detect when a client's current representation of an entity is out-of-date.
     * @type {string}
     * @memberof UserProfile
     */
    etag?: string;
    /**
     * This person's given name (forename)
     * @type {string}
     * @memberof UserProfile
     */
    firstName?: string;
    /**
     * This person's family name (surname)
     * @type {string}
     * @memberof UserProfile
     */
    lastName?: string;
    /**
     * This is deprecated as users can have more than one email. See emails
     * @type {string}
     * @memberof UserProfile
     */
    email?: string;
    /**
     * The list of user email addresses registered to this user.
     * @type {Array<string>}
     * @memberof UserProfile
     */
    emails?: Array<string>;
    /**
     * The list of OpenIds bound to this user's account.
     * @type {Array<string>}
     * @memberof UserProfile
     */
    openIds?: Array<string>;
    /**
     * A name chosen by the user that uniquely identifies them.
     * @type {string}
     * @memberof UserProfile
     */
    userName?: string;
    /**
     * This field is deprecated and will always be null.
     * @type {string}
     * @memberof UserProfile
     */
    displayName?: string;
    /**
     * URL for RStudio server assigned to the user
     * @type {string}
     * @memberof UserProfile
     */
    rStudioUrl?: string;
    /**
     * A summary description about this person
     * @type {string}
     * @memberof UserProfile
     */
    summary?: string;
    /**
     * This person's current position title
     * @type {string}
     * @memberof UserProfile
     */
    position?: string;
    /**
     * This person's location
     * @type {string}
     * @memberof UserProfile
     */
    location?: string;
    /**
     * The industry/discipline that this person is associated with
     * @type {string}
     * @memberof UserProfile
     */
    industry?: string;
    /**
     * This person's current affiliation
     * @type {string}
     * @memberof UserProfile
     */
    company?: string;
    /**
     * The File Handle id of the user's profile picture
     * @type {string}
     * @memberof UserProfile
     */
    profilePicureFileHandleId?: string;
    /**
     * A link to more information about this person
     * @type {string}
     * @memberof UserProfile
     */
    url?: string;
    /**
     * This person's default team name
     * @type {string}
     * @memberof UserProfile
     */
    teamName?: string;
    /**
     *
     * @type {Settings}
     * @memberof UserProfile
     */
    notificationSettings?: Settings;
    /**
     *
     * @type {Set<UserPreferenceBoolean>}
     * @memberof UserProfile
     */
    preferences?: Set<UserPreferenceBoolean>;
    /**
     * The date this profile was created.
     * @type {string}
     * @memberof UserProfile
     */
    createdOn?: string;
    /**
     * Flag that indicates if the user has two factor authentication enabled.
     * @type {boolean}
     * @memberof UserProfile
     */
    twoFactorAuthEnabled?: boolean;
    /**
     * The list of term of service versions that the user agreed to
     * @type {Array<TermsOfServiceAgreement>}
     * @memberof UserProfile
     */
    tosAgreements?: Array<TermsOfServiceAgreement>;
}
/**
 * Check if a given object implements the UserProfile interface.
 */
export declare function instanceOfUserProfile(value: object): value is UserProfile;
export declare function UserProfileFromJSON(json: any): UserProfile;
export declare function UserProfileFromJSONTyped(json: any, ignoreDiscriminator: boolean): UserProfile;
export declare function UserProfileToJSON(json: any): UserProfile;
export declare function UserProfileToJSONTyped(value?: UserProfile | null, ignoreDiscriminator?: boolean): any;
