import net from 'node:net';
import { RpcClient } from './rpc-client';
import type { RpcClientOptions, RpcClientSimulatorOptions, RemoteCommand } from '../types';
/**
 * RPC client implementation for iOS simulators.
 * Extends RpcClient to provide simulator-specific connection handling
 * via TCP sockets or Unix domain sockets.
 */
export declare class RpcClientSimulator extends RpcClient {
    protected readonly host?: string;
    protected port?: number;
    protected readonly messageProxy?: any;
    protected socket: net.Socket | null;
    protected readonly socketPath?: string;
    protected service?: any;
    /**
     * @param opts - Options for configuring the RPC client, including
     *                simulator-specific options like socketPath, host, and port.
     */
    constructor(opts?: RpcClientOptions & RpcClientSimulatorOptions);
    /**
     * Connects to the Web Inspector service on an iOS simulator.
     * Supports both Unix domain sockets and TCP connections, with optional proxy support.
     */
    connect(): Promise<void>;
    /**
     * Disconnects from the Web Inspector service on the simulator.
     * Closes the socket and service connection, and cleans up resources.
     */
    disconnect(): Promise<void>;
    /**
     * Sends a command message to the Web Inspector service via the socket.
     * Handles socket errors and ensures the socket is available before sending.
     *
     * @param cmd - The command to send to the simulator.
     */
    sendMessage(cmd: RemoteCommand): Promise<void>;
    /**
     * Receives data from the Web Inspector service and handles it.
     * Converts Buffer data to strings for certain message keys.
     *
     * @param data - The data received from the service.
     */
    receive(data: any): Promise<void>;
}
//# sourceMappingURL=rpc-client-simulator.d.ts.map