import { Entity, PBAvatarBase, PBAvatarEquippedData, TransformType } from '@dcl/ecs';
export type AssetPackData = {
    id: string;
    name: string;
};
export declare function isAssetPackData(value: any): value is AssetPackData;
export type LegacyAssetData = {
    id: string;
    name: string;
    category: string;
    tags: string[];
    components: Record<string, any>;
};
export type AssetComposite = {
    version: number;
    components: Array<{
        name: string;
        data: {
            [key: string]: {
                json: any;
            };
        };
    }>;
};
export type AssetData = {
    id: string;
    name: string;
    category: string;
    tags: string[];
    composite: AssetComposite;
    description?: string;
    author?: string;
};
export type AssetDataWithoutComposite = Omit<AssetData, 'composite'>;
export interface TriggerData {
    value: {
        type: string;
        actions: {
            id: string;
            name: string;
        }[];
    }[];
}
export declare function isAssetDataWithoutComposite(value: any): value is AssetDataWithoutComposite;
export declare function isAssetData(value: any): value is AssetData;
export declare function isLegacyAssetData(value: any): value is LegacyAssetData;
export declare function getTriggerComponent(value: AssetData): TriggerData | undefined;
export declare function assertValidTriggerComponent(assetName: string, trigger: TriggerData): void;
export type Asset = AssetData & {
    contents: Record<string, string>;
};
export type AssetPack = AssetPackData & {
    thumbnail: string;
    assets: Asset[];
};
export type Catalog = {
    assetPacks: AssetPack[];
};
export type Component = {
    name: string;
    data: {
        [key: string]: {
            json: any;
        };
    };
};
export type ISDKHelpers = {
    syncEntity?: SyncEntitySDK;
};
export type SyncEntitySDK = (entityId: Entity, componentIds: number[], entityEnumId?: number | undefined) => void;
export type IPlayersHelper = {
    onEnterScene(cb: (player: GetPlayerDataRes) => void): void;
    onLeaveScene(cb: (userId: string) => void): void;
    getPlayer(user?: GetPlayerDataReq): GetPlayerDataRes | null;
};
type GetPlayerDataReq = {
    userId: string;
};
export type GetPlayerDataRes = {
    entity: Entity;
    name: string;
    isGuest: boolean;
    userId: string;
    avatar?: PBAvatarBase;
    wearables: PBAvatarEquippedData['wearableUrns'];
    emotes: PBAvatarEquippedData['emoteUrns'];
    position: TransformType['position'] | undefined;
};
export type CaptchaData = {
    campaignId: string;
    dispenserKey: string;
    captcha: {
        id: string;
        image: string;
        height: number;
        width: number;
    };
};
export {};
