/**
 * gameAssetUtils.ts — Utilities for GameAsset2dEditor
 */
import type { TileDefinition, TileMap, TileLayer, SpriteFrame, SpriteAnimation, Effect, GameAssetProject, TiledExport } from './gameAssetTypes';
export declare const generateId: (prefix?: string) => string;
export declare const imageDataToDataUrl: (imageData: ImageData) => string;
export declare const dataUrlToImageData: (dataUrl: string) => Promise<ImageData>;
export declare const loadImage: (src: string) => Promise<HTMLImageElement>;
export declare const cropImageData: (imageData: ImageData, x: number, y: number, width: number, height: number) => ImageData;
export declare const createTileFromImage: (imageData: ImageData, name: string) => TileDefinition;
export declare const createEmptyTileLayer: (name: string, mapWidth: number, mapHeight: number) => TileLayer;
export declare const createEmptyTileMap: (name: string, width: number, height: number, tileWidth: number, tileHeight: number, mode?: "tilemap" | "2d" | "2.5d-isometric" | "2.5d-oblique") => TileMap;
export declare const autoSliceSpriteSheet: (imageData: ImageData, frameWidth: number, frameHeight: number, padding?: number) => SpriteFrame[];
export declare const detectFrames: (imageData: ImageData) => SpriteFrame[];
export declare const createSpriteAnimation: (name: string, frameIds: string[], frameDelay?: number) => SpriteAnimation;
export declare const applyEffect: (imageData: ImageData, effect: Effect) => ImageData;
export declare const applyEffects: (imageData: ImageData, effects: Effect[]) => ImageData;
export declare const exportToTiledJson: (tileMap: TileMap, tileSets: TileDefinition[]) => TiledExport;
export declare const downloadJson: (data: object, filename: string) => void;
export declare const downloadPng: (canvas: HTMLCanvasElement, filename: string) => void;
export declare const createEmptyProject: (name: string) => GameAssetProject;
export declare const serializeProject: (project: GameAssetProject) => string;
export declare const deserializeProject: (json: string) => Promise<GameAssetProject>;
