import type { AvatarDefinition } from './types/AvatarDefinition';
import type { AvatarPalette, AvatarSurfaceStyle, AvatarVisualDefinition, AvatarVisualId, RenderAvatarVisualOptions } from './types/AvatarVisualDefinition';
/**
 * Stable render data derived once from the avatar definition, surface, and visual id.
 *
 * @private shared helper for canvas avatar rendering
 */
export type ResolvedAvatarRenderDefinition = {
    readonly avatarDefinition: AvatarDefinition;
    readonly avatarVisual: AvatarVisualDefinition;
    readonly surface: AvatarSurfaceStyle;
    readonly palette: AvatarPalette;
    readonly createRandom: (salt: string) => () => number;
};
/**
 * Resolves the stable avatar render inputs reused across multiple frames.
 *
 * @param options Avatar identity and visual selection.
 * @returns Stable render data ready to be used by `renderAvatarVisual`.
 *
 * @private shared helper for canvas avatar rendering
 */
export declare function resolveAvatarRenderDefinition(options: {
    readonly avatarDefinition: AvatarDefinition;
    readonly visualId: AvatarVisualId;
    readonly surface?: AvatarSurfaceStyle;
}): ResolvedAvatarRenderDefinition;
/**
 * Renders one deterministic avatar frame into the provided canvas.
 *
 * @param options Rendering options.
 * @param resolvedAvatarRenderDefinition Optional stable render data reused between frames.
 *
 * @private shared helper for canvas avatar rendering
 */
export declare function renderAvatarVisual(options: RenderAvatarVisualOptions, resolvedAvatarRenderDefinition?: ResolvedAvatarRenderDefinition): void;
