/**
 * One callback registered in the shared avatar animation scheduler.
 *
 * @private utility of the avatar rendering system
 */
type AvatarAnimationListener = (now: number) => void;
/**
 * Registers one avatar animation callback in the shared animation loop.
 *
 * Each listener is staggered at registration time so it does not fire on the same animation
 * frame as the existing listeners, and the shared loop further caps how many listeners run
 * per frame, keeping the main thread responsive when many avatars are mounted.
 *
 * @param avatarAnimationListener Frame callback invoked on every animation frame.
 * @returns Cleanup function that unregisters the callback.
 *
 * @private utility of the avatar rendering system
 */
export declare function retainAvatarAnimationListener(avatarAnimationListener: AvatarAnimationListener): () => void;
export {};
