/**
 * AvatarAppearance Packet
 *
 * This file is used to help our packet serialization and deserialization
 * process, and to create new packets on the fly.
 *
 * ⚠️ Do not edit this file manually, it is generated by the `codegen` script!
 *
 * @see {@link http://wiki.secondlife.com/wiki/Message_Layout}
 */
import { Bool, S32, U8, U32, UUID, Variable2, Vector3 } from "../types";
import { type PacketMetadata } from "./packet";
export interface AvatarAppearanceData {
    sender?: {
        id: string;
        isTrial: boolean;
    };
    objectData?: {
        textureEntry: string | Buffer;
    };
    visualParam?: {
        paramValue: number;
    }[];
    appearanceData?: {
        appearanceVersion: number;
        cofVersion: number;
        flags: number;
    }[];
    appearanceHover?: {
        hoverHeight: Vector3;
    }[];
    attachmentBlock?: {
        id: string;
        attachmentPoint: number;
    }[];
}
export declare const avatarAppearanceMetadata: {
    id: number;
    name: string;
    frequency: 2;
    trusted: true;
    compression: true;
    blocks: ({
        name: string;
        parameters: ([string, typeof UUID] | [string, typeof Bool])[];
        multiple?: undefined;
    } | {
        name: string;
        parameters: [string, typeof Variable2][];
        multiple?: undefined;
    } | {
        name: string;
        parameters: ([string, typeof U32] | [string, typeof U8] | [string, typeof S32])[];
        multiple: true;
    } | {
        name: string;
        parameters: [string, typeof Vector3][];
        multiple: true;
    } | {
        name: string;
        parameters: ([string, typeof U8] | [string, typeof UUID])[];
        multiple: true;
    })[];
};
export declare const avatarAppearance: (data: AvatarAppearanceData, reliable?: boolean) => {
    data: AvatarAppearanceData;
    reliable: boolean | undefined;
    metadata: PacketMetadata;
};
export declare const createAvatarAppearanceDelegate: (config: Omit<import("..").DelegateConfig<AvatarAppearanceData>, "metadata">) => void;
