import { default as BinaryStream } from '../../../../jsbinaryutils/src/index.ts';
import { default as SkinAnimation } from './SkinAnimation';
import { default as SkinCape } from './SkinCape';
import { default as SkinImage } from './SkinImage';
import { default as SkinPersona } from './skin-persona/SkinPersona';
interface Image {
    ImageWidth: number;
    ImageHeight: number;
    Image: string;
}
interface AnimatedImageData extends Image {
    Frames: number;
    Type: number;
    AnimationExpression: number;
}
interface PersonaPiece {
    IsDefault: boolean;
    PackId: string;
    PieceId: string;
    PieceType: string;
    ProductId: string;
}
interface PieceTintColor {
    Colors: string[];
    PieceType: string;
}
interface JWT {
    SkinId: string;
    CapeId: string;
    SkinResourcePatch: string;
    PlayFabId: string;
    SkinImageHeight: number;
    SkinImageWidth: number;
    SkinGeometryData: string;
    SkinAnimationData: string;
    CapeImageHeight: number;
    CapeImageWidth: number;
    CapeOnClassicSkin: boolean;
    SkinData: string;
    CapeData: string;
    PremiumSkin: boolean;
    PersonaSkin: boolean;
    SkinColor: string;
    ArmSize: string;
    AnimatedImageData: AnimatedImageData[];
    PersonaPieces: PersonaPiece[];
    PieceTintColors: PieceTintColor[];
}
export default class Skin {
    private id;
    private playFabId;
    private resourcePatch;
    private image;
    private readonly animations;
    private cape;
    private geometry;
    private animationData;
    private premium;
    private persona;
    private capeOnClassicSkin;
    private color;
    private armSize;
    private personaData;
    /**
     * Full skin ID, computed because
     * not sent on JWT.
     */
    fullId: string;
    isTrusted: boolean;
    /**
     * Loads a skin from a JSON file containing skin data
     * using minecraft bedrock login fields.
     *
     * (loads the skin persona)
     */
    static fromJWT(jwt: JWT): Skin;
    networkSerialize(stream: BinaryStream): void;
    getId(): string;
    getFullId(): string;
    getPlayFabId(): string;
    getResourcePatch(): string;
    getImage(): SkinImage;
    getAnimations(): Set<SkinAnimation>;
    getAnimationData(): string;
    isPersona(): boolean;
    isPremium(): boolean;
    isCapeOnClassicSkin(): boolean;
    getColor(): string;
    getArmSize(): string;
    getPersonaData(): SkinPersona;
    getGeometry(): string;
    getCape(): SkinCape;
}
export {};
//# sourceMappingURL=Skin.d.ts.map