import type { WebExecutionTarget } from "@qawolf/flow-targets"; import type { FlowApiReturnValue, FlowDefinition, LegacyFlowDefinition } from "../flowExportTypes.js"; import type { Dependencies } from "./dependencies.js"; import { type WebBrowserPresetLiteral, type WebSupportedPresetLiteral } from "./flowTarget.js"; import type { BrowserLaunchOptions, ElectronFlowLaunchOptions } from "./runtime.js"; /** * A web flow target or supported preset literal accepted by `flow(...)`. * * Targets select the browser family and baseline runtime environment. The * `"Basic"` preset is intentionally excluded; it has its own entry point at * `@qawolf/flows/cli` because it does not run a browser. */ export type WebFlowTarget = WebExecutionTarget | WebSupportedPresetLiteral; export type WebBrowserExecutionTarget = Omit & { meta: Exclude; }; export type WebBrowserFlowTarget = WebBrowserExecutionTarget | WebBrowserPresetLiteral; export type WebElectronFlowTarget = "Electron" | (WebExecutionTarget & { meta: { kind: "electron"; }; }); export type WebLegacyFlowOptions = { launch?: false | undefined; target: WebFlowTarget; }; export type WebBrowserFlowOptions = { launch: true | BrowserLaunchOptions; target: WebBrowserFlowTarget; }; export type WebElectronFlowOptions = { launch: ElectronFlowLaunchOptions; target: WebElectronFlowTarget; }; /** * The accepted target input shape for a web flow. * * Pass either a preset string/target directly or wrap it in `{ target }` when * additional flow options are introduced. */ export type WebFlowTargetInput = WebFlowTarget | WebLegacyFlowOptions | WebBrowserFlowOptions | WebElectronFlowOptions; /** * The executable definition returned by `flow(...)` for web automation. */ export type WebFlowDefinition = FlowDefinition; /** * The legacy web flow definition shape that still receives injected context. */ export type WebLegacyFlowDefinition = LegacyFlowDefinition; /** * The public return type of the web `flow(...)` API. */ export type WebFlowApiReturnValue = FlowApiReturnValue; export declare function getTarget(target: WebFlowTargetInput): WebFlowTarget; export declare function assertValidWebFlowTarget(target: WebFlowTarget): void; //# sourceMappingURL=flowTypes.d.ts.map