/**
 * GameAsset Export Formats
 * Export utilities for Tiled, Godot, Unity, and other game engines
 */
import type { CollisionShape } from './CollisionEditor';
export interface GameAssetExportOptions {
    /** Asset name */
    name: string;
    /** Image width */
    width: number;
    /** Image height */
    height: number;
    /** Image file path (relative) */
    imagePath: string;
    /** Collision shapes */
    collisions?: CollisionShape[];
    /** Animation frames */
    frames?: AnimationFrameData[];
    /** Sprite metadata */
    sprite?: SpriteMetadata;
    /** Tile size for tile-based export */
    tileSize?: {
        width: number;
        height: number;
    };
    /** Custom properties */
    properties?: Record<string, unknown>;
}
export interface AnimationFrameData {
    /** Frame index */
    index: number;
    /** Frame duration in milliseconds */
    duration: number;
    /** Frame region in sprite sheet */
    region: {
        x: number;
        y: number;
        width: number;
        height: number;
    };
    /** Frame collision shapes (overrides default) */
    collisions?: CollisionShape[];
    /** Frame anchor/pivot point */
    anchor?: {
        x: number;
        y: number;
    };
}
export interface SpriteMetadata {
    /** Pivot point (normalized 0-1) */
    pivot: {
        x: number;
        y: number;
    };
    /** Pixels per unit */
    pixelsPerUnit: number;
    /** Border for 9-slice */
    border?: {
        left: number;
        right: number;
        top: number;
        bottom: number;
    };
    /** Filter mode */
    filterMode?: 'point' | 'bilinear' | 'trilinear';
    /** Wrap mode */
    wrapMode?: 'clamp' | 'repeat' | 'mirror';
}
export interface ExportResult {
    /** File name */
    fileName: string;
    /** File content */
    content: string;
    /** MIME type */
    mimeType: string;
}
export interface TiledExportOptions extends GameAssetExportOptions {
    /** First global ID */
    firstgid?: number;
    /** Tile count */
    tileCount?: number;
    /** Columns in tileset */
    columns?: number;
    /** Spacing between tiles */
    spacing?: number;
    /** Margin around tileset */
    margin?: number;
    /** Object alignment */
    objectAlignment?: 'unspecified' | 'topleft' | 'top' | 'topright' | 'left' | 'center' | 'right' | 'bottomleft' | 'bottom' | 'bottomright';
}
/**
 * Export as Tiled tileset (TSX format)
 */
export declare function exportToTiled(options: TiledExportOptions): ExportResult;
export interface GodotExportOptions extends GameAssetExportOptions {
    /** Godot version (3 or 4) */
    godotVersion?: 3 | 4;
    /** Resource UID (Godot 4) */
    uid?: string;
    /** Atlas texture */
    atlas?: boolean;
}
/**
 * Export as Godot SpriteFrames resource
 */
export declare function exportToGodot(options: GodotExportOptions): ExportResult[];
export interface UnityExportOptions extends GameAssetExportOptions {
    /** Generate .meta file */
    generateMeta?: boolean;
    /** Unity GUID */
    guid?: string;
    /** Sprite mode */
    spriteMode?: 'single' | 'multiple';
    /** Pixels per unit */
    pixelsPerUnit?: number;
    /** Filter mode */
    filterMode?: 'point' | 'bilinear' | 'trilinear';
    /** Sprite packing tag */
    packingTag?: string;
}
/**
 * Export for Unity (meta file + scriptable object data)
 */
export declare function exportToUnity(options: UnityExportOptions): ExportResult[];
/**
 * Export as generic JSON (for custom importers)
 */
export declare function exportToJson(options: GameAssetExportOptions): ExportResult;
export interface PhaserExportOptions extends GameAssetExportOptions {
    /** Phaser version (2 or 3) */
    phaserVersion?: 2 | 3;
    /** Physics system */
    physics?: 'arcade' | 'matter' | 'p2';
}
/**
 * Export for Phaser (JSON Atlas format)
 */
export declare function exportToPhaser(options: PhaserExportOptions): ExportResult[];
/**
 * Export for Construct 2/3 (c2addon/c3addon compatible JSON)
 */
export declare function exportToConstruct(options: GameAssetExportOptions): ExportResult;
export type ExportFormat = 'tiled' | 'godot' | 'unity' | 'phaser' | 'construct' | 'json';
export interface ExportManagerOptions {
    format: ExportFormat;
    options: GameAssetExportOptions;
    formatOptions?: Partial<TiledExportOptions | GodotExportOptions | UnityExportOptions | PhaserExportOptions>;
}
/**
 * Export game asset to specified format
 */
export declare function exportGameAsset(config: ExportManagerOptions): ExportResult[];
/**
 * Download export results as files
 */
export declare function downloadExportResults(results: ExportResult[]): void;
/**
 * Zip export results (requires JSZip)
 */
export declare function zipExportResults(results: ExportResult[], zipName: string): Promise<Blob>;
