/**
 * Type definitions for the Playcademy Vite Plugin
 */
import type { ResolvedConfig } from 'vite';
import type { ManifestV1 } from '@playcademy/data/types';
/**
 * Project information extracted from package.json and directory structure
 */
export interface ProjectInfo {
    slug: string;
    displayName: string;
    version: string;
    description?: string;
}
/**
 * Configuration options for exporting Playcademy games
 */
export interface PlaycademyExportOptions {
    bootMode?: ManifestV1['bootMode'];
    entryPoint?: string;
    styles?: string[];
    platform?: ManifestV1['platform'];
    autoZip?: boolean;
}
/**
 * Configuration options for the Playcademy sandbox server
 */
export interface PlaycademySandboxOptions {
    autoStart?: boolean;
    url?: string;
    verbose?: boolean;
}
/**
 * Configuration options for the dev server shell
 */
export interface PlaycademyDevOptions {
    /**
     * Show the Playcademy badge in the corner during development
     * @default true
     */
    showBadge?: boolean;
}
/**
 * Main plugin configuration options
 */
export interface PlaycademyPluginOptions {
    export?: PlaycademyExportOptions;
    sandbox?: PlaycademySandboxOptions;
    dev?: PlaycademyDevOptions;
}
/**
 * Build output data for logging and tracking
 */
export interface PlaycademyOutputData {
    manifestPath?: string;
    manifestSizeKb?: string;
    zipPath?: string;
    zipSizeKb?: string;
}
/**
 * Options for manifest generation
 */
export interface ManifestOptions {
    bootMode: ManifestV1['bootMode'];
    entryPoint: string;
    styles: string[];
    platform: ManifestV1['platform'];
}
/**
 * Sandbox manager interface for controlling sandbox lifecycle
 */
export interface SandboxManager {
    baseUrl: string;
    realtimeUrl: string;
    port: number;
    project: ProjectInfo | null;
    cleanup: () => void;
}
/**
 * CLI server manager interface for controlling backend server lifecycle
 */
export interface CliServerManager {
    server: {
        dispose: () => Promise<void>;
    };
    port: number;
    stopHotReload: () => void;
    cleanup: () => void;
}
/**
 * Options for setting up the CLI dev server
 */
export interface CliDevServerOptions {
    preferredPort: number;
    viteConfig: ResolvedConfig;
    platformUrl?: string;
}
