export type EditableBodyProportions = 'head' | 'arms' | 'chest'; export type Gender = 'male' | 'female'; export type Category = 'eyewear' | 'hairAndHeadwear' | 'clothing' | 'footwear'; export type AssetItem = { id: string; alias?: string; category: Category; preview: string; }; export type BodyItem = { id: string; preview: string; gender: Gender; }; export type AnimationItem = { id: string; alias?: string; preview: string; }; export type ExportAvatarResult = { url: string; urlType: 'dataURL' | 'httpURL'; avatarId: string; sessionId: string; avatarSupportsFaceAnimations: boolean; bodyId: string; gender: Gender; }; export type InitParams = { /** * URL to open. Typically created with `/v1/sessions/new` API request. */ url?: string; /** * CSS class name for the iframe element created by SDK to embed Avaturn. */ iframeClassName?: string; /** * Disables UI in avatar editor. See https://docs.avaturn.me/docs/integration/sdk/custom-ui/ * @default `false` */ disableUi?: boolean; /** * Default assets to set for the avatar */ defaultAssets?: DefaultAssets; }; export type DefaultAssets = { /** If an avatar already has non-default configuration, should this configuration override it? */ overrideSaved: boolean; /** Asset IDs. */ assets: string[]; }; /** * Event types to listen with `sdk.on()` * @event */ export interface SdkCallback { /** Load event fires when avatar editor is fully loaded and ready to show avatar. Only works with sessions created with Avaturn API. ``` sdk.on('load', (data) => { log('[callback] Avatar exported: ' + data); }) ``` @event */ load: () => void; /** Fires when a user pressed button "Next". ``` @event */ export: (message: ExportAvatarResult) => void; /** * Fires when a user changed asset on the avatar. Only works with sessions created with Avaturn API. * @event */ assetSet: (id: string) => void; /** * Fires when a user changed body of the avatar. Only works with sessions created with Avaturn API. * @event */ bodySet: (id: string) => void; /** * Fires when user changed a parameter (currently only hair color is supported). Only works with sessions created with Avaturn API. * @internal * @event */ changeParam: (data: { key: 'hair_color'; value: string; }) => void; error: (data: { type: string; message?: string; }) => void; }