export type ExportPlatform = 'web' | 'pwa' | 'android' | 'ios' | 'electron-win' | 'electron-mac' | 'electron-linux' | 'steam'; export type ExportStep = 'prepare' | 'bundle' | 'optimize' | 'package' | 'sign' | 'deploy'; export interface ExportPipelineConfig { platform: ExportPlatform; appName: string; appId: string; version: string; buildNumber: number; icon: string; splashScreen?: string; orientation: 'portrait' | 'landscape' | 'any'; minify: boolean; sourceMaps: boolean; treeshake: boolean; compressionLevel: 'none' | 'fast' | 'best'; assetOptimization: AssetOptimizationConfig; signing?: SigningConfig; } export interface AssetOptimizationConfig { compressTextures: boolean; textureFormat: 'png' | 'webp' | 'avif' | 'basis'; maxTextureSize: number; compressAudio: boolean; audioFormat: 'mp3' | 'ogg' | 'aac'; audioBitrate: number; inlineSmallAssets: boolean; inlineThresholdBytes: number; generateSpriteAtlas: boolean; atlasMaxSize: number; } export interface SigningConfig { keystore?: string; keystorePassword?: string; keyAlias?: string; teamId?: string; provisioningProfile?: string; } export declare const DEFAULT_ASSET_OPTIMIZATION: AssetOptimizationConfig; export interface ExportResult { platform: ExportPlatform; success: boolean; outputPath: string; fileSize: number; buildDuration: number; errors: string[]; warnings: string[]; } export interface PWAConfig { name: string; shortName: string; description: string; themeColor: string; backgroundColor: string; display: 'fullscreen' | 'standalone' | 'minimal-ui' | 'browser'; orientation: 'portrait' | 'landscape' | 'any'; startUrl: string; scope: string; icons: PWAIcon[]; cacheStrategy: 'cache-first' | 'network-first' | 'stale-while-revalidate'; offlineSupport: boolean; pushNotifications: boolean; installPrompt: boolean; } export interface PWAIcon { src: string; sizes: string; type: string; purpose: 'any' | 'maskable' | 'monochrome'; } export declare function generateServiceWorkerConfig(config: PWAConfig): Record; export interface CapacitorConfig { appId: string; appName: string; webDir: string; plugins: CapacitorPluginConfig; ios: CapacitorIOSConfig; android: CapacitorAndroidConfig; } export interface CapacitorPluginConfig { statusBar?: { style: 'dark' | 'light'; backgroundColor: string; }; splashScreen?: { launchShowDuration: number; launchAutoHide: boolean; backgroundColor: string; }; keyboard?: { resize: 'body' | 'ionic' | 'native' | 'none'; }; haptics?: boolean; screenOrientation?: string; } export interface CapacitorIOSConfig { scheme: string; contentInset: 'automatic' | 'always' | 'never'; allowsLinkPreview: boolean; deploymentTarget: string; preferredContentMode: 'mobile' | 'desktop'; } export interface CapacitorAndroidConfig { minSdkVersion: number; targetSdkVersion: number; allowMixedContent: boolean; backgroundColor: string; buildToolsVersion: string; } export declare function createCapacitorConfig(appId: string, appName: string): CapacitorConfig; export interface ElectronConfig { width: number; height: number; minWidth: number; minHeight: number; resizable: boolean; fullscreen: boolean; fullscreenable: boolean; frame: boolean; titleBarStyle: 'default' | 'hidden' | 'hiddenInset'; autoHideMenuBar: boolean; webPreferences: ElectronWebPrefs; singleInstance: boolean; tray: boolean; autoUpdater: boolean; } export interface ElectronWebPrefs { nodeIntegration: boolean; contextIsolation: boolean; sandbox: boolean; webSecurity: boolean; devTools: boolean; } export declare function createElectronConfig(partial?: Partial): ElectronConfig; export type VirtualControlType = 'joystick' | 'dpad' | 'button' | 'slider' | 'swipe-zone'; export interface VirtualControl { id: string; type: VirtualControlType; position: { x: number; y: number; }; size: number; anchor: 'bottom-left' | 'bottom-right' | 'top-left' | 'top-right' | 'center'; opacity: number; hapticFeedback: boolean; label?: string; icon?: string; } export interface VirtualJoystickConfig extends VirtualControl { type: 'joystick'; deadzone: number; dynamic: boolean; lockAxis?: 'x' | 'y'; returnSpeed: number; } export interface VirtualButtonConfig extends VirtualControl { type: 'button'; mappedAction: string; holdable: boolean; repeatRate?: number; shape: 'circle' | 'square' | 'rounded'; } export interface TouchControlLayout { id: string; name: string; controls: VirtualControl[]; autoHide: boolean; autoHideDelay: number; customizable: boolean; previewImage?: string; } export declare function createDefaultMobileLayout(): TouchControlLayout; export type AdProvider = 'admob' | 'unity-ads' | 'ironsource' | 'applovin' | 'custom'; export type AdType = 'banner' | 'interstitial' | 'rewarded' | 'native'; export type AdPosition = 'top' | 'bottom' | 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right'; export interface AdConfig { provider: AdProvider; appId: string; testMode: boolean; childDirected: boolean; placements: AdPlacement[]; consentRequired: boolean; maxAdsPerSession: number; cooldownBetweenAds: number; } export interface AdPlacement { id: string; type: AdType; unitId: string; position?: AdPosition; size?: { width: number; height: number; }; autoShow?: boolean; trigger?: string; rewardAmount?: number; rewardType?: string; } export interface AdEvent { placement: string; type: 'loaded' | 'shown' | 'clicked' | 'closed' | 'failed' | 'rewarded'; timestamp: number; error?: string; rewardGranted?: boolean; } export interface MobilePerformanceProfile { tier: 'low' | 'medium' | 'high'; maxFPS: number; renderScale: number; maxParticles: number; maxAudioSources: number; shadowQuality: 'off' | 'low' | 'medium' | 'high'; postProcessing: boolean; textureQuality: 'low' | 'medium' | 'high'; physicsBroadPhaseSize: number; } export declare const MOBILE_PERF_PROFILES: Record;