export declare const UserOnboardingDepartments: readonly ["Design", "Product", "Engineering", "Brand", "Other"]; export type UserOnboardingDepartment = (typeof UserOnboardingDepartments)[number]; export declare const UserOnboardingJobLevels: readonly ["Executive", "Manager", "IndividualContributor", "Other"]; export type UserOnboardingJobLevel = (typeof UserOnboardingJobLevels)[number]; export declare const UserOnboardingCompanySizes: readonly ["Just me", "2 - 49", "50 - 249", "250 - 999", "1,000 - 4,999", "5,000 - 9,999", "More than 10,000"]; export type UserOnboardingCompanySize = (typeof UserOnboardingCompanySizes)[number]; export declare const UserOnboardingDesignSystemTeamSizes: readonly ["We don’t have a design system team", "Only one person", "2 - 5", "6 - 10", "More than 10"]; export type UserOnboardingDesignSystemTeamSize = (typeof UserOnboardingDesignSystemTeamSizes)[number]; export type UserOnboardingDefaultDestination = "tokens" | "docs"; /** * Onboarding phase stored on the user profile. Known values: * - `finished` — onboarding complete (`isOnboardingFinished` is derived from this). * - `code-library` — continue code library onboarding at the code-container step (choice). * - `code-library-setup` — continue at code-container setup. * The API may return other strings for legacy or future flows. */ export type UserOnboardingPhase = "finished" | "code-library" | "code-library-setup" | "base" | (string & {}); export type UserProfileRemoteModel = { name?: string; nickname?: string; avatar?: string; onboarding?: UserProfileOnboardingRemoteModel; isOnboardingFinished?: boolean; theme?: UserThemeRemoteModel; }; export type UserProfileOnboardingRemoteModel = { companyName?: string; numberOfPeopleInOrg?: UserOnboardingCompanySize; numberOfPeopleInDesignTeam?: UserOnboardingDesignSystemTeamSize; department?: UserOnboardingDepartment; jobTitle?: string; phase?: UserOnboardingPhase; jobLevel?: UserOnboardingJobLevel; designSystemName?: string; figmaUrl?: string; defaultDestination?: UserOnboardingDefaultDestination; isPageDraftOnboardingFinished?: boolean; isApprovalsOnboardingFinished?: boolean; }; export type UserThemeRemoteModel = { preset?: "SystemPreference" | "Default" | "Sepia" | "HighContrast" | "DefaultDark" | "HighContrastDark" | "SpaceBlue" | "DarkGrey" | "Custom"; backgroundColor?: string; accentColor?: string; contrast?: number; isSecondaryEnabled?: boolean; secondaryBackgroundColor?: string; secondaryContrast?: number; isEditorWhite?: boolean; }; export type UserTheme = { preset: Exclude; } & Omit; export type UserProfileTransportModel = UserProfileRemoteModel; export type UserProfileOnboardingUpdateModel = UserProfileOnboardingRemoteModel; export type UserProfileUpdateModel = { name?: string; nickname?: string; onboarding?: UserProfileOnboardingRemoteModel; theme?: UserThemeRemoteModel; }; export declare class UserProfile { /** User name */ name: string; /** User nickname */ nickname: string | null; /** Avatar */ avatar: string | null; /** Is profile onboarding finished */ isOnboardingFinished: boolean; /** User theme */ theme: UserTheme | null; /** Onboarding object */ onboarding: { companyName: string | null; numberOfPeopleInOrg: UserOnboardingCompanySize | null; numberOfPeopleInDesignTeam: UserOnboardingDesignSystemTeamSize | null; department: UserOnboardingDepartment | null; jobTitle: string | null; phase: UserOnboardingPhase | null; jobLevel: UserOnboardingJobLevel | null; designSystemName: string | null; figmaUrl: string | null; defaultDestination: UserOnboardingDefaultDestination | null; isPageDraftOnboardingFinished: boolean | null; isApprovalsOnboardingFinished: boolean | null; } | null; constructor(model: UserProfileRemoteModel); /** Constructs directly manipulable update object for user profile */ toProfileUpdateObject(): UserProfileUpdateModel; toOnboardingUpdateObject(): UserProfileOnboardingUpdateModel; /** Constructs representation that can be used to write full object to remote */ toRemote(): UserProfileTransportModel; /** Constructs representation that can be used to transport the instantiated object as JSON, for example for SSR <> Client use-cases. Reconstruct to class instance using `fromTransport` */ toTransport(): UserProfileTransportModel; /** Reconstructs class from the transport model */ static fromTransport(model: UserProfileTransportModel): UserProfile; }