/// import { ExtensionInstance } from '../../models/extensions/extension-instance.js'; import { AbortSignal } from '@shopify/cli-kit/node/abort'; import { DotEnvFile } from '@shopify/cli-kit/node/dot-env'; import { Writable } from 'stream'; export interface ExtensionDevOptions { /** * Standard output stream to send the output through. */ stdout: Writable; /** * Standard error stream to send the error output through. */ stderr: Writable; /** * Signal to abort the build process. */ signal: AbortSignal; /** * Overrides the default build directory. */ buildDirectory?: string; /** * The extension to be built. */ extensions: ExtensionInstance[]; /** * The ID of the app that contains the extension. */ id?: string; /** * The name of the app containing the extensions. */ appName: string; /** * Location of the app code. */ appDirectory: string; /** * File based environment variables for the app */ appDotEnvFile?: DotEnvFile; /** * The app identifier */ apiKey: string; /** * URL where the extension is locally served from. It's usually the tunnel URL */ url: string; /** * The port where the extension is hosted. * It's usually the tunnel port */ port: number; /** * The store where the extension wants to be previewed */ storeFqdn: string; /** * Id of the store where the extension wants to be previewed */ storeId: string; /** * List of granted approval scopes belonging to the parent app */ grantedScopes: string[]; /** * Product variant ID, used for UI extensions targeting Checkout * If that extension is present, this is mandatory */ checkoutCartUrl?: string; /** * Subscription product URL, used for subscription_ui_extensions * If not provided the first product in the store will be used */ subscriptionProductUrl?: string; /** * Fixed version for the Dev Server's manifest. * This is exposed in the JSON payload for clients connecting to the Dev Server */ manifestVersion: string; } export declare function devUIExtensions(options: ExtensionDevOptions): Promise;