import { SimulatorBoot } from './SimulatorBoot.js';
import { SimulatorApps } from './SimulatorApps.js';
import { SimulatorUI } from './SimulatorUI.js';
import { SimulatorInfo } from './SimulatorInfo.js';
import { SimulatorReset } from './SimulatorReset.js';
/**
 * Represents a specific simulator device instance.
 * Provides a complete interface for simulator operations while
 * delegating to specialized components internally.
 */
export declare class SimulatorDevice {
    readonly id: string;
    readonly name: string;
    readonly platform: string;
    readonly runtime: string;
    private boot;
    private apps;
    private ui;
    private info;
    private reset;
    constructor(id: string, name: string, platform: string, runtime: string, components?: {
        boot?: SimulatorBoot;
        apps?: SimulatorApps;
        ui?: SimulatorUI;
        info?: SimulatorInfo;
        reset?: SimulatorReset;
    });
    /**
     * Boot this simulator device
     */
    bootDevice(): Promise<void>;
    /**
     * Shutdown this simulator device
     */
    shutdown(): Promise<void>;
    /**
     * Install an app on this device
     */
    install(appPath: string): Promise<void>;
    /**
     * Uninstall an app from this device
     */
    uninstall(bundleId: string): Promise<void>;
    /**
     * Launch an app on this device
     */
    launch(bundleId: string): Promise<string>;
    /**
     * Get bundle ID from an app path
     */
    getBundleId(appPath: string): Promise<string>;
    /**
     * Take a screenshot of this device
     */
    screenshot(outputPath: string): Promise<void>;
    /**
     * Get screenshot data as base64
     */
    screenshotData(): Promise<{
        base64: string;
        mimeType: string;
    }>;
    /**
     * Set appearance mode (light/dark)
     */
    setAppearance(appearance: 'light' | 'dark'): Promise<void>;
    /**
     * Open the Simulator app UI
     */
    open(): Promise<void>;
    /**
     * Get device logs
     */
    logs(predicate?: string, last?: string): Promise<string>;
    /**
     * Get current device state
     */
    getState(): Promise<string>;
    /**
     * Check if device is available
     */
    checkAvailability(): Promise<boolean>;
    /**
     * Reset this device to clean state
     */
    resetDevice(): Promise<void>;
    /**
     * Check if device is currently booted
     * Checks actual current state, not cached value
     */
    isBooted(): Promise<boolean>;
    /**
     * Ensure this device is booted, boot if necessary
     */
    ensureBooted(): Promise<void>;
}
//# sourceMappingURL=SimulatorDevice.d.ts.map