import { IOConnectDesktop } from '@interopio/desktop';
import { GatewayConfigurationData } from '../types';
/**
 * Factory that creates a function for spawning new IO.Connect app instances
 * inside WDIO tests.
 *
 * Workflow:
 * 1. Imports the given `appDefinition` into the in-memory AppManager of the
 *    internal IO.Connect service instance (used to simulate registration).
 * 2. Uses the official `@interopio/desktop` factory to create a fresh
 *    IO.Connect runtime bound to that app:
 *    - Attaches Workspaces API as a library
 *    - Passes gateway host + token for authentication
 *    - Assigns the app name as the current application identity
 *
 * This abstraction allows tests to spin up fully isolated IO.Connect API
 * instances (scoped per app) while re-using the shared service-internal
 * gateway connection.
 *
 */
export declare function createIOConnectInstance(iocdServiceInternalIoInstance: IOConnectDesktop.API, gwConfigurationData: GatewayConfigurationData): (appDefinition: IOConnectDesktop.AppManager.Definition, config: IOConnectDesktop.Config) => Promise<IOConnectDesktop.API>;
