import type { GLTF } from 'three/addons/loaders/GLTFLoader.js';
import type { Avatar } from '../three/avatar.js';
import type { Appearance } from '../core/contract.js';
import { type CharacterAppearance, type CharacterAsset } from './contract.js';
export declare function characterAssetUrl(asset: CharacterAsset, baseUrl?: string): string;
export type CharacterAvatar = Omit<Avatar, 'emote'> & {
    emote: (id: string, age?: number, loop?: boolean) => void;
};
export declare function composeCharacter(value: CharacterAppearance, source: GLTF, parts: GLTF[], animations: GLTF): CharacterAvatar;
export declare function loadCharacterAvatar(appearance: Appearance): Promise<Avatar>;
