@marcosremar/cabecao
Version:
Modern React 3D avatar component with chat and lip-sync capabilities
1,893 lines (1,872 loc) • 49.3 kB
TypeScript
import * as react_jsx_runtime from 'react/jsx-runtime';
import * as react from 'react';
declare function Cabecao(props: any): react_jsx_runtime.JSX.Element;
declare function ChatProvider({ children, apiUrl, r2Url, wsUrl }: {
children: any;
apiUrl: any;
r2Url: any;
wsUrl: any;
}): react_jsx_runtime.JSX.Element;
declare function useChat(): any;
declare function UI({ hidden, autoStartVAD, showStartButton, vadEnabled, ...props }: {
[x: string]: any;
hidden: any;
autoStartVAD?: boolean;
showStartButton?: boolean;
vadEnabled?: boolean;
}): react_jsx_runtime.JSX.Element;
/**
* Hook to manage gesture animations for the avatar
*/
declare function useGestures(avatarRef: any, onGestureStateChange: any, options?: {}): {
playGesture: (gestureName: any, duration?: number, mirror?: boolean, transitionMs?: number) => void;
stopGesture: (transitionMs?: number) => void;
currentGesture: react.MutableRefObject<any>;
};
declare function useEmotes(avatarRef: any, options?: {}): {
currentEmote: any;
currentMood: any;
isPlaying: boolean;
playEmote: (emoteName: any) => void;
playEmoji: (emoji: any) => void;
setMood: (mood: any) => void;
reset: (smooth?: any, duration?: any) => void;
availableEmotes: string[];
availableMoods: string[];
emojiMappings: {
'\uD83D\uDE0A': string;
'\uD83D\uDE00': string;
'\uD83D\uDE03': string;
'\uD83D\uDE04': string;
'\uD83D\uDE01': string;
'\uD83D\uDE06': string;
'\uD83D\uDE02': string;
'\uD83E\uDD23': string;
'\uD83D\uDE0D': string;
'\uD83E\uDD70': string;
'\uD83D\uDE18': string;
'\uD83D\uDE17': string;
'\uD83D\uDE19': string;
'\uD83D\uDE1A': string;
'\uD83D\uDE14': string;
'\uD83D\uDE1E': string;
'\uD83D\uDE1F': string;
'\u2639\uFE0F': string;
'\uD83D\uDE2D': string;
'\uD83D\uDE22': string;
'\uD83D\uDE21': string;
'\uD83D\uDE20': string;
'\uD83E\uDD2C': string;
'\uD83D\uDE31': string;
'\uD83D\uDE28': string;
'\uD83D\uDE30': string;
'\uD83D\uDE32': string;
'\uD83D\uDE2E': string;
'\uD83D\uDE2F': string;
'\uD83E\uDD14': string;
'\uD83D\uDE0F': string;
'\uD83D\uDE34': string;
'\uD83D\uDE2A': string;
'\uD83E\uDD22': string;
'\uD83E\uDD2E': string;
'\uD83D\uDE10': string;
'\uD83D\uDE11': string;
'\uD83D\uDE44': string;
'\uD83D\uDE09': string;
'\uD83D\uDE1B': string;
'\uD83D\uDE1D': string;
'\uD83D\uDE1C': string;
'\uD83E\uDD2A': string;
'\uD83D\uDE0B': string;
'\uD83D\uDE12': string;
'\uD83D\uDE2C': string;
'\uD83D\uDE33': string;
'\uD83E\uDD7A': string;
'\uD83D\uDE15': string;
'\uD83D\uDE41': string;
'\uD83D\uDE29': string;
'\uD83D\uDE2B': string;
'\uD83D\uDE16': string;
'\uD83D\uDE35': string;
'\uD83D\uDE35\u200D\uD83D\uDCAB': string;
'\uD83E\uDD74': string;
'\uD83D\uDE36': string;
'\uD83D\uDE36\u200D\uD83C\uDF2B\uFE0F': string;
'\uD83E\uDEE5': string;
'\uD83D\uDE0E': string;
'\uD83E\uDD78': string;
'\uD83E\uDD13': string;
'\uD83E\uDDD0': string;
'\uD83D\uDE08': string;
'\uD83D\uDC7F': string;
'\uD83E\uDD2F': string;
'\uD83E\uDD76': string;
'\uD83E\uDD75': string;
'\uD83D\uDE37': string;
'\uD83E\uDD12': string;
'\uD83E\uDD15': string;
'\uD83E\uDD27': string;
'\uD83D\uDE07': string;
'\uD83E\uDD73': string;
'\uD83E\uDD79': string;
'\uD83E\uDEE0': string;
'\uD83E\uDD17': string;
'\uD83E\uDEE3': string;
'\uD83E\uDD2D': string;
'\uD83E\uDEE2': string;
'\uD83E\uDEE1': string;
'\uD83E\uDD2B': string;
'\uD83E\uDEE4': string;
'\uD83D\uDE13': string;
'\uD83D\uDE25': string;
'\uD83E\uDD71': string;
'\uD83D\uDE24': string;
'\uD83D\uDE2E\u200D\uD83D\uDCA8': string;
'\uD83D\uDE0C': string;
'\uD83E\uDD24': string;
'\uD83D\uDE43': string;
'\uD83D\uDE26': string;
'\uD83D\uDE27': string;
'\uD83D\uDE38': string;
'\uD83D\uDE39': string;
'\uD83D\uDE3A': string;
'\uD83D\uDE3B': string;
'\uD83D\uDE3C': string;
'\uD83D\uDE3D': string;
'\uD83D\uDE3E': string;
'\uD83D\uDE3F': string;
'\uD83D\uDE40': string;
};
};
declare namespace readyPlayerMePreset {
let persistExpressions: boolean;
let smoothReset: boolean;
let resetDuration: number;
let transitionDuration: number;
}
declare namespace timedExpressionPreset {
let emoteDuration: number;
let autoReset: boolean;
}
declare namespace eternalExpressionPreset {
let emoteDuration_1: any;
export { emoteDuration_1 as emoteDuration };
let autoReset_1: boolean;
export { autoReset_1 as autoReset };
}
declare function useCustomEmotes(options?: {}): {
activeEmote: any;
emoteValues: {};
playEmote: (emoteName: any, duration?: any) => void;
resetEmote: () => void;
getCurrentValues: () => {};
addCustomEmote: (name: any, values: any) => void;
intensity: any;
transitionSpeed: any;
availableEmotes: string[];
};
declare function useHeadControls(groupRef: any, options?: {}): {
rotation: any;
pitch: any;
headBone: any;
neckBone: any;
setRotation: react.Dispatch<any>;
setPitch: react.Dispatch<any>;
lookAt: (x: any, y: any) => void;
reset: () => void;
applyHeadMovement: (deltaTime?: number) => void;
headBoneRef: react.MutableRefObject<any>;
neckBoneRef: react.MutableRefObject<any>;
};
declare function useListening(options?: {}): {
isListening: boolean;
listeningStartTime: any;
startListening: () => void;
stopListening: () => void;
getNoddingAngle: () => number;
nodSpeed: any;
nodAmplitude: any;
};
declare function useBlink(options?: {}): {
isBlinking: boolean;
leftWink: boolean;
rightWink: boolean;
blink: () => void;
winkLeft: (duration?: number) => void;
winkRight: (duration?: number) => void;
getMorphTargetValues: () => {
eyeBlinkLeft: number;
eyeBlinkRight: number;
};
enabled: any;
minInterval: any;
maxInterval: any;
blinkDuration: any;
};
declare function useLipsync(options?: {}): {
activeVisemes: any[];
processVisemes: (lipsyncData: any, currentTime: any, expressionValues?: {}) => {};
getVisemeMorphTargets: () => any[];
isViseme: (morphTarget: any) => boolean;
getResetValues: (excludeTargets?: any[]) => {};
visemeMapping: any;
visemeIntensity: any;
visemeLerpSpeed: any;
resetSpeed: any;
};
declare function useAvatarLoader(modelPath: any, setAnimation: any, avatarConfigs?: any[], mixer?: any, actions?: any, onLoadStart?: any, onLoadComplete?: any): {
loadAvatar: (targetPath: any) => void;
reloadAvatar: () => void;
isLoading: boolean;
getAvatarConfig: (path: any) => any;
getAvatarGender: (path: any) => any;
getAvatarName: (path: any) => any;
getIdleAnimationForGender: (gender: any) => "Idle";
};
declare function useBlinking(setBlink: any, config?: {}): void;
declare function useMicroMovements(groupRef: any, config?: {}): void;
declare function useListeningAnimation(isListening: any, groupRef: any, neckBoneRef: any, headBoneRef: any, config?: {}): void;
declare namespace defaultNaturalityConfig {
namespace breathing {
let enabled: boolean;
let rate: number;
let intensity: number;
let variation: number;
let chestMovement: number;
let randomOffset: boolean;
}
namespace blinking {
let enabled_1: boolean;
export { enabled_1 as enabled };
export let interval: number[];
export let doubleBlink: number;
export let blinkDuration: number[];
}
namespace eyeMovements {
let enabled_2: boolean;
export { enabled_2 as enabled };
export let speed: number;
export let amplitude: number;
export let focusMode: boolean;
export let randomSaccades: number;
export namespace restingGaze {
let x: number;
let y: number;
}
}
namespace microMovements {
let enabled_3: boolean;
export { enabled_3 as enabled };
export let weightShift: number;
export let weightShiftSpeed: number;
export let postureAdjust: number;
export let shoulderMovement: number;
export let neckAdjustments: number;
}
namespace listeningAnimation {
let enabled_4: boolean;
export { enabled_4 as enabled };
export let rhythmVariation: number[];
export let headNodVariation: number;
export let pauseProbability: number;
export let microRotations: boolean;
}
}
declare function useNaturalBehaviors({ groupRef, neckBoneRef, headBoneRef, setBlink, isListening, config }: {
groupRef: any;
neckBoneRef: any;
headBoneRef: any;
setBlink: any;
isListening: any;
config?: {};
}): void;
/**
* Mirror a gesture (swap left/right and invert appropriate axes)
*/
declare function mirrorGesture(gesture: any): {};
/**
* Get all unique bone names from gesture templates
*/
declare function getAllGestureBones(): any[];
declare namespace gestureTemplates {
let handup: {
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
let index: {
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
let ok: {
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
let thumbup: {
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
let thumbdown: {
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
let salute: {
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
let side: {
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
let shrug: {
'Neck.rotation': {
x: number;
y: number;
z: number;
};
'Head.rotation': {
x: number;
y: number;
z: number;
};
'RightShoulder.rotation': {
x: number;
y: number;
z: number;
};
'RightArm.rotation': {
x: number;
y: number;
z: number;
};
'RightForeArm.rotation': {
x: number;
y: number;
z: number;
};
'RightHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'RightHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'RightHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'RightHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'RightHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'RightHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
let namaste: {
'RightShoulder.rotation': {
x: number;
y: number;
z: number;
};
'RightArm.rotation': {
x: number;
y: number;
z: number;
};
'RightForeArm.rotation': {
x: number;
y: number;
z: number;
};
'RightHand.rotation': {
x: number;
y: number;
z: number;
};
'LeftShoulder.rotation': {
x: number;
y: number;
z: number;
};
'LeftArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftForeArm.rotation': {
x: number;
y: number;
z: number;
};
'LeftHand.rotation': {
x: number;
y: number;
z: number;
};
'RightHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'RightHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'RightHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'RightHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'RightHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'RightHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'RightHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandThumb3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandIndex3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandMiddle3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandRing3.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky1.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky2.rotation': {
x: number;
y: number;
z: number;
};
'LeftHandPinky3.rotation': {
x: number;
y: number;
z: number;
};
};
}
/**
* Get all available morph target names
*/
declare function getAllMorphTargets(): any[];
/**
* Emote templates based on TalkingHead project
* Each emote contains morph target values for facial expressions
*/
declare const emoteTemplates: {
neutral: {
browInnerUp: number;
browDownLeft: number;
browDownRight: number;
browOuterUpLeft: number;
browOuterUpRight: number;
eyeSquintLeft: number;
eyeSquintRight: number;
eyeWideLeft: number;
eyeWideRight: number;
mouthSmileLeft: number;
mouthSmileRight: number;
mouthFrownLeft: number;
mouthFrownRight: number;
mouthOpen: number;
mouthPucker: number;
eyeLookUpLeft: number;
eyeLookUpRight: number;
eyeLookDownLeft: number;
eyeLookDownRight: number;
};
smile: {
browInnerUp: number;
eyeSquintLeft: number;
eyeSquintRight: number;
mouthSmile: number;
noseSneerLeft: number;
noseSneerRight: number;
};
grin: {
browInnerUp: number;
jawOpen: number;
mouthDimpleLeft: number;
mouthDimpleRight: number;
mouthOpen: number;
mouthPressLeft: number;
mouthPressRight: number;
mouthRollLower: number;
mouthShrugUpper: number;
mouthSmile: number;
mouthUpperUpLeft: number;
mouthUpperUpRight: number;
noseSneerLeft: number;
noseSneerRight: number;
};
bigSmile: {
browInnerUp: number;
eyeWideLeft: number;
eyeWideRight: number;
jawOpen: number;
mouthDimpleLeft: number;
mouthDimpleRight: number;
mouthOpen: number;
mouthPressLeft: number;
mouthPressRight: number;
mouthRollLower: number;
mouthShrugUpper: number;
mouthSmile: number;
mouthUpperUpLeft: number;
mouthUpperUpRight: number;
noseSneerLeft: number;
noseSneerRight: number;
};
laughing: {
mouthSmileLeft: number;
mouthSmileRight: number;
mouthOpen: number;
eyeSquintLeft: number;
eyeSquintRight: number;
browInnerUp: number;
};
love: {
mouthSmileLeft: number;
mouthSmileRight: number;
eyeSquintLeft: number;
eyeSquintRight: number;
browInnerUp: number;
mouthPucker: number;
};
kiss: {
mouthPucker: number;
eyeSquintLeft: number;
eyeSquintRight: number;
browInnerUp: number;
};
sad: {
browInnerUp: number;
eyeSquintLeft: number;
eyeSquintRight: number;
eyesClosed: number;
bodyRotateX: number;
mouthClose: number;
mouthFrownLeft: number;
mouthFrownRight: number;
mouthPressLeft: number;
mouthPressRight: number;
mouthPucker: number;
mouthRollLower: number;
mouthRollUpper: number;
mouthUpperUpLeft: number;
mouthUpperUpRight: number;
};
crying: {
mouthFrownLeft: number;
mouthFrownRight: number;
mouthOpen: number;
browInnerUp: number;
eyeSquintLeft: number;
eyeSquintRight: number;
};
angry: {
browDownLeft: number;
browDownRight: number;
eyesLookUp: number;
jawForward: number;
mouthFrownLeft: number;
mouthFrownRight: number;
bodyRotateX: number;
};
mad: {
browDownLeft: number;
browDownRight: number;
mouthFrownLeft: number;
mouthFrownRight: number;
eyeSquintLeft: number;
eyeSquintRight: number;
};
shocked: {
browInnerUp: number;
eyeWideLeft: number;
eyeWideRight: number;
jawOpen: number;
mouthFunnel: number;
};
surprised: {
browInnerUp: number;
eyeWideLeft: number;
eyeWideRight: number;
jawOpen: number;
mouthFunnel: number;
};
thinking: {
browDownLeft: number;
browOuterUpRight: number;
eyeSquintLeft: number;
mouthFrownLeft: number;
mouthFrownRight: number;
mouthLowerDownLeft: number;
mouthPressRight: number;
mouthPucker: number;
mouthRight: number;
mouthRollLower: number;
mouthRollUpper: number;
};
smirk: {
mouthSmileLeft: number;
mouthSmileRight: number;
eyeSquintLeft: number;
browOuterUpLeft: number;
};
sleepy: {
eyeSquintLeft: number;
eyeSquintRight: number;
eyeLookDownLeft: number;
eyeLookDownRight: number;
mouthOpen: number;
};
disgusted: {
browDownLeft: number;
browDownRight: number;
noseSneerLeft: number;
noseSneerRight: number;
mouthFrownLeft: number;
mouthFrownRight: number;
mouthPucker: number;
eyeSquintLeft: number;
eyeSquintRight: number;
};
straight: {
browInnerUp: number;
eyeWideLeft: number;
eyeWideRight: number;
mouthStretchLeft: number;
mouthStretchRight: number;
};
eyeRoll: {
browInnerUp: number;
eyeWideLeft: number;
eyeWideRight: number;
eyesRotateX: number;
bodyRotateX: number;
mouthPucker: number;
mouthRollLower: number;
mouthRollUpper: number;
mouthShrugLower: number;
mouthSmile: number;
};
wink: {
eyeSquintLeft: number;
eyeSquintRight: number;
mouthSmileLeft: number;
mouthSmileRight: number;
};
tongueOut: {
tongueOut: number;
mouthOpen: number;
eyeSquintLeft: number;
eyeSquintRight: number;
};
blowingKiss: {
mouthPucker: number;
eyeSquintLeft: number;
eyeSquintRight: number;
browInnerUp: number;
cheekSquintLeft: number;
cheekSquintRight: number;
};
kissing: {
mouthPucker: number;
eyeSquintLeft: number;
eyeSquintRight: number;
browInnerUp: number;
};
unamused: {
eyeSquintLeft: number;
eyeSquintRight: number;
mouthFrownLeft: number;
mouthFrownRight: number;
browDownLeft: number;
browDownRight: number;
eyeLookDownLeft: number;
eyeLookDownRight: number;
};
grimacing: {
browDownLeft: number;
browDownRight: number;
browInnerUp: number;
mouthDimpleLeft: number;
mouthDimpleRight: number;
mouthLowerDownLeft: number;
mouthLowerDownRight: number;
mouthPressLeft: number;
mouthPressRight: number;
mouthPucker: number;
mouthSmile: number;
mouthSmileLeft: number;
mouthSmileRight: number;
mouthStretchLeft: number;
mouthStretchRight: number;
mouthUpperUpLeft: number;
mouthUpperUpRight: number;
};
flushed: {
eyeWideLeft: number;
eyeWideRight: number;
browOuterUpLeft: number;
browOuterUpRight: number;
mouthOpen: number;
cheekSquintLeft: number;
cheekSquintRight: number;
};
pleading: {
eyeWideLeft: number;
eyeWideRight: number;
browInnerUp: number;
mouthFrownLeft: number;
mouthFrownRight: number;
eyeLookUpLeft: number;
eyeLookUpRight: number;
};
disappointed: {
mouthFrownLeft: number;
mouthFrownRight: number;
browInnerUp: number;
eyeSquintLeft: number;
eyeSquintRight: number;
eyeLookDownLeft: number;
eyeLookDownRight: number;
mouthLeft: number;
};
sleeping: {
eyeSquintLeft: number;
eyeSquintRight: number;
mouthOpen: number;
browInnerUp: number;
jawOpen: number;
};
tongueOutWink: {
tongueOut: number;
mouthOpen: number;
eyeSquintLeft: number;
eyeSquintRight: number;
mouthSmileLeft: number;
mouthSmileRight: number;
};
savoring: {
tongueOut: number;
mouthSmileLeft: number;
mouthSmileRight: number;
eyeSquintLeft: number;
eyeSquintRight: number;
browInnerUp: number;
};
crazyFace: {
tongueOut: number;
mouthOpen: number;
eyeWideLeft: number;
eyeSquintRight: number;
browOuterUpLeft: number;
browDownRight: number;
};
funnyFace: {
jawLeft: number;
mouthPucker: number;
noseSneerLeft: number;
noseSneerRight: number;
mouthLeft: number;
eyeLookUpLeft: number;
eyeLookUpRight: number;
cheekPuff: number;
mouthDimpleLeft: number;
mouthRollLower: number;
mouthSmileLeft: number;
mouthSmileRight: number;
};
'\uD83D\uDE0A': {
browInnerUp: number;
eyeSquintLeft: number;
eyeSquintRight: number;
mouthSmile: number;
noseSneerLeft: number;
noseSneerRight: number;
};
'\uD83D\uDE00': {
browInnerUp: number;
jawOpen: number;
mouthDimpleLeft: number;
mouthDimpleRight: number;
mouthOpen: number;
mouthPressLeft: number;
mouthPressRight: number;
mouthRollLower: number;
mouthShrugUpper: number;
mouthSmile: number;
mouthUpperUpLeft: number;
mouthUpperUpRight: number;
noseSneerLeft: number;
noseSneerRight: number;
};
};
/**
* Emoji to emote mapping
*/
declare const emojiToEmote: {
'\uD83D\uDE0A': string;
'\uD83D\uDE00': string;
'\uD83D\uDE03': string;
'\uD83D\uDE04': string;
'\uD83D\uDE01': string;
'\uD83D\uDE06': string;
'\uD83D\uDE02': string;
'\uD83E\uDD23': string;
'\uD83D\uDE0D': string;
'\uD83E\uDD70': string;
'\uD83D\uDE18': string;
'\uD83D\uDE17': string;
'\uD83D\uDE19': string;
'\uD83D\uDE1A': string;
'\uD83D\uDE14': string;
'\uD83D\uDE1E': string;
'\uD83D\uDE1F': string;
'\u2639\uFE0F': string;
'\uD83D\uDE2D': string;
'\uD83D\uDE22': string;
'\uD83D\uDE21': string;
'\uD83D\uDE20': string;
'\uD83E\uDD2C': string;
'\uD83D\uDE31': string;
'\uD83D\uDE28': string;
'\uD83D\uDE30': string;
'\uD83D\uDE32': string;
'\uD83D\uDE2E': string;
'\uD83D\uDE2F': string;
'\uD83E\uDD14': string;
'\uD83D\uDE0F': string;
'\uD83D\uDE34': string;
'\uD83D\uDE2A': string;
'\uD83E\uDD22': string;
'\uD83E\uDD2E': string;
'\uD83D\uDE10': string;
'\uD83D\uDE11': string;
'\uD83D\uDE44': string;
'\uD83D\uDE09': string;
'\uD83D\uDE1B': string;
'\uD83D\uDE1D': string;
'\uD83D\uDE1C': string;
'\uD83E\uDD2A': string;
'\uD83D\uDE0B': string;
'\uD83D\uDE12': string;
'\uD83D\uDE2C': string;
'\uD83D\uDE33': string;
'\uD83E\uDD7A': string;
'\uD83D\uDE15': string;
'\uD83D\uDE41': string;
'\uD83D\uDE29': string;
'\uD83D\uDE2B': string;
'\uD83D\uDE16': string;
'\uD83D\uDE35': string;
'\uD83D\uDE35\u200D\uD83D\uDCAB': string;
'\uD83E\uDD74': string;
'\uD83D\uDE36': string;
'\uD83D\uDE36\u200D\uD83C\uDF2B\uFE0F': string;
'\uD83E\uDEE5': string;
'\uD83D\uDE0E': string;
'\uD83E\uDD78': string;
'\uD83E\uDD13': string;
'\uD83E\uDDD0': string;
'\uD83D\uDE08': string;
'\uD83D\uDC7F': string;
'\uD83E\uDD2F': string;
'\uD83E\uDD76': string;
'\uD83E\uDD75': string;
'\uD83D\uDE37': string;
'\uD83E\uDD12': string;
'\uD83E\uDD15': string;
'\uD83E\uDD27': string;
'\uD83D\uDE07': string;
'\uD83E\uDD73': string;
'\uD83E\uDD79': string;
'\uD83E\uDEE0': string;
'\uD83E\uDD17': string;
'\uD83E\uDEE3': string;
'\uD83E\uDD2D': string;
'\uD83E\uDEE2': string;
'\uD83E\uDEE1': string;
'\uD83E\uDD2B': string;
'\uD83E\uDEE4': string;
'\uD83D\uDE13': string;
'\uD83D\uDE25': string;
'\uD83E\uDD71': string;
'\uD83D\uDE24': string;
'\uD83D\uDE2E\u200D\uD83D\uDCA8': string;
'\uD83D\uDE0C': string;
'\uD83E\uDD24': string;
'\uD83D\uDE43': string;
'\uD83D\uDE26': string;
'\uD83D\uDE27': string;
'\uD83D\uDE38': string;
'\uD83D\uDE39': string;
'\uD83D\uDE3A': string;
'\uD83D\uDE3B': string;
'\uD83D\uDE3C': string;
'\uD83D\uDE3D': string;
'\uD83D\uDE3E': string;
'\uD83D\uDE3F': string;
'\uD83D\uDE40': string;
};
declare namespace moodPresets {
let neutral: {};
namespace happy {
let mouthSmileLeft: number;
let mouthSmileRight: number;
let eyeSquintLeft: number;
let eyeSquintRight: number;
}
namespace sad {
let mouthFrownLeft: number;
let mouthFrownRight: number;
let browInnerUp: number;
let eyeLookDownLeft: number;
let eyeLookDownRight: number;
}
namespace angry {
export let browDownLeft: number;
export let browDownRight: number;
let mouthFrownLeft_1: number;
export { mouthFrownLeft_1 as mouthFrownLeft };
let mouthFrownRight_1: number;
export { mouthFrownRight_1 as mouthFrownRight };
}
namespace love {
let mouthSmileLeft_1: number;
export { mouthSmileLeft_1 as mouthSmileLeft };
let mouthSmileRight_1: number;
export { mouthSmileRight_1 as mouthSmileRight };
let eyeSquintLeft_1: number;
export { eyeSquintLeft_1 as eyeSquintLeft };
let eyeSquintRight_1: number;
export { eyeSquintRight_1 as eyeSquintRight };
}
}
declare function lerpMorphTarget(scene: any, targetName: string, value: number, speed?: number, debug?: boolean): boolean;
declare function applyMorphTargets(scene: any, targets: any, speed?: number, intensity?: number, debug?: boolean): void;
declare function resetAllMorphTargets(scene: any, speed?: number, exclude?: any[]): void;
declare function getCurrentMorphTargetValues(scene: any, threshold?: number): any;
declare function findMorphTargetMesh(scene: any): any | null;
declare function listMorphTargets(scene: any): any[];
export { Cabecao, ChatProvider, UI, applyMorphTargets, Cabecao as default, defaultNaturalityConfig, emojiToEmote, emoteTemplates, eternalExpressionPreset, findMorphTargetMesh, gestureTemplates, getAllGestureBones, getAllMorphTargets, getCurrentMorphTargetValues, lerpMorphTarget, listMorphTargets, mirrorGesture, moodPresets, readyPlayerMePreset, resetAllMorphTargets, timedExpressionPreset, useAvatarLoader, useBlink, useBlinking, useChat, useCustomEmotes, useEmotes, useGestures, useHeadControls, useLipsync, useListening, useListeningAnimation, useMicroMovements, useNaturalBehaviors };