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<string, unknown>;
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>): 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<string, MobilePerformanceProfile>;
