/**
 * useGameAssetExport
 * Hook for exporting game assets from editor contexts
 */
import type { ExportFormat, ExportResult, ExportManagerOptions } from './gameAssetExport';
import type { CollisionShape } from './CollisionEditor';
export interface UseGameAssetExportOptions {
    /** Asset name */
    name: string;
    /** Asset dimensions */
    width: number;
    height: number;
    /** Image data (canvas, blob, or path) */
    image: HTMLCanvasElement | Blob | string;
    /** Collision shapes */
    collisions?: CollisionShape[];
    /** Animation frames data */
    frames?: FrameData[];
    /** Default export format */
    defaultFormat?: ExportFormat;
}
export interface FrameData {
    /** Frame index */
    index: number;
    /** Frame duration in ms */
    duration: number;
    /** Frame region in source image */
    x: number;
    y: number;
    width: number;
    height: number;
    /** Anchor point (0-1) */
    anchorX?: number;
    anchorY?: number;
    /** Per-frame collisions */
    collisions?: CollisionShape[];
}
export interface ExportState {
    /** Whether export is in progress */
    isExporting: boolean;
    /** Export progress (0-1) */
    progress: number;
    /** Current export step */
    step: string;
    /** Last export results */
    results: ExportResult[] | null;
    /** Last export error */
    error: Error | null;
}
export interface UseGameAssetExportReturn {
    /** Export state */
    state: ExportState;
    /** Export to specific format */
    exportTo: (format: ExportFormat, options?: Partial<ExportManagerOptions['formatOptions']>) => Promise<ExportResult[]>;
    /** Export and download */
    exportAndDownload: (format: ExportFormat, options?: Partial<ExportManagerOptions['formatOptions']>) => Promise<void>;
    /** Export and download as ZIP */
    exportAndZip: (format: ExportFormat, options?: Partial<ExportManagerOptions['formatOptions']>) => Promise<void>;
    /** Export to all formats */
    exportAll: () => Promise<Map<ExportFormat, ExportResult[]>>;
    /** Clear last results/error */
    reset: () => void;
    /** Available formats */
    availableFormats: ExportFormat[];
}
export declare function useGameAssetExport(options: UseGameAssetExportOptions): UseGameAssetExportReturn;
export interface ExportWithImageOptions extends UseGameAssetExportOptions {
    /** Include image in export */
    includeImage?: boolean;
    /** Image format */
    imageFormat?: 'png' | 'webp' | 'jpg';
    /** Image quality (0-1, for jpg/webp) */
    imageQuality?: number;
}
/**
 * Export asset data along with image file
 */
export declare function exportWithImage(format: ExportFormat, options: ExportWithImageOptions): Promise<{
    data: ExportResult[];
    image?: Blob;
}>;
export default useGameAssetExport;
