/** * Auth login interaction service. * * Best-effort platform integration for browser launch and clipboard copy. * Provides both the CLI-specific AuthLoginInteraction and the core * DeviceLoginInteraction service (used by core's runDeviceLogin). * * @experimental This API is unstable and may change without notice. */ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as ServiceMap from "effect/Context"; import type { ChildProcessSpawner as ChildProcessSpawnerService } from "effect/unstable/process/ChildProcessSpawner"; import { DeviceLoginInteraction } from "./device-login.js"; interface CommandInvocation { readonly command: string; readonly args: ReadonlyArray; readonly stdinText?: string; } export interface AuthLoginInteractionService { readonly openBrowser: (url: string) => Effect.Effect; readonly copyToClipboard: (text: string) => Effect.Effect; } declare const AuthLoginInteraction_base: ServiceMap.ServiceClass; export declare class AuthLoginInteraction extends AuthLoginInteraction_base { } export declare const browserCommands: (url: string, platform?: NodeJS.Platform) => ReadonlyArray; export declare const AuthLoginInteractionLive: Layer.Layer; export interface AuthLoginInteractionTestState { readonly openBrowserCalls: Array; readonly copyToClipboardCalls: Array; } export declare const AuthLoginInteractionTest: (overrides?: { readonly openBrowser?: (url: string) => Effect.Effect; readonly copyToClipboard?: (text: string) => Effect.Effect; }) => { layer: Layer.Layer; state: AuthLoginInteractionTestState; }; export {}; //# sourceMappingURL=login-interaction.d.ts.map