import { z } from 'zod';
import { PROFILE } from './profile.js';
import type { WorldDefinition } from '../wire/world.js';
import type { CharacterAppearance, CHARACTER_PROFILE } from '../character/contract.js';
export { PROFILE } from './profile.js';
export declare const slotSchema: z.ZodEnum<{
    head: "head";
    back: "back";
    face: "face";
    "upper-body": "upper-body";
}>;
export declare const itemSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    description: z.ZodString;
    slot: z.ZodEnum<{
        head: "head";
        back: "back";
        face: "face";
        "upper-body": "upper-body";
    }>;
    priceXno: z.ZodNumber;
    asset: z.ZodString;
    version: z.ZodString;
    profile: z.ZodLiteral<"pocket-humanoid-v1">;
    attachment: z.ZodEnum<{
        Spine: "Spine";
        Head: "Head";
    }>;
    creator: z.ZodString;
    license: z.ZodEnum<{
        "CC0-1.0": "CC0-1.0";
        "CC-BY-4.0": "CC-BY-4.0";
        "CC-BY-SA-4.0": "CC-BY-SA-4.0";
        MIT: "MIT";
        "LicenseRef-Permission": "LicenseRef-Permission";
    }>;
    permission: z.ZodString;
    color: z.ZodString;
    kind: z.ZodOptional<z.ZodEnum<{
        rigid: "rigid";
        skinned: "skinned";
    }>>;
    rigRevision: z.ZodOptional<z.ZodLiteral<"humanoid-1">>;
    coverage: z.ZodOptional<z.ZodArray<z.ZodLiteral<"torso">>>;
    sourceFiles: z.ZodOptional<z.ZodArray<z.ZodString>>;
    assetRevision: z.ZodOptional<z.ZodString>;
    validation: z.ZodOptional<z.ZodEnum<{
        "legacy-approved": "legacy-approved";
        validated: "validated";
    }>>;
    listed: z.ZodOptional<z.ZodBoolean>;
    assetUrl: z.ZodOptional<z.ZodString>;
}, z.core.$strict>;
export type Item = z.infer<typeof itemSchema>;
export type World = {
    id: string;
    name: string;
    description: string;
    url: string;
    entryPath: string;
    accent: string;
    definition?: WorldDefinition;
};
export type Player = {
    id: string;
    name: string;
    color: string;
};
export type Appearance = {
    player: Player;
    revision?: number;
    profile: typeof PROFILE | typeof CHARACTER_PROFILE;
    bodyAsset: string;
    baseAssetRevision?: string;
    rigRevision?: 'humanoid-1' | string;
    character?: CharacterAppearance;
    animations: ('idle' | 'walk' | 'run' | 'jump' | 'fall' | 'land' | 'wave' | 'dance')[];
    animationRefs?: {
        id: string;
        assetRevision: string;
        clip: string;
    }[];
    equipped: (Item & {
        assetUrl: string;
    })[];
};
export type Wardrobe = {
    appearance: Appearance;
    inventory: string[];
    catalogue: Item[];
    ownedItems?: (Item & {
        assetUrl: string;
    })[];
};
export type WorldSession = {
    world: World;
    appearance: Appearance;
    destinations: World[];
    homeUrl: string;
    expiresAt?: number;
};
export type TravelEvent = {
    id: string;
    player_id: string;
    source: string;
    destination: string;
    completed_at: number;
};
export type Order = {
    id: string;
    player_id: string;
    item_id: string;
    price_xno: number;
    status: 'pending' | 'paid';
    created_at: number;
    paid_at: number | null;
    referral_travel_id: string | null;
    asset_revision?: string;
    sale_world?: string | null;
    source_world?: string | null;
    referral_status?: 'eligible' | 'expired' | 'absent' | 'legacy-unrecorded';
};
