import type { StdioOptions } from 'node:child_process'; import type { AnyCommand } from './domain/command.js'; import type { HelpPayload } from './domain/help-payload.js'; export interface HelpDisplay { shouldFire: () => boolean; show: (payload: HelpPayload) => void; } export interface TextStyler { bgWhite: (msg: string) => string; black: (msg: string) => string; dim: (msg: string) => string; green: (msg: string) => string; bold: (msg: string) => string; bgGreen: (msg: string) => string; } export interface AstroVersionProvider { readonly version: string; } export interface CommandRunner { run: (command: T, ...args: Parameters) => ReturnType; } export interface CommandExecutor { execute: (command: string, args?: Array, options?: { cwd?: string; env?: Record; shell?: boolean; input?: string; stdio?: StdioOptions; }) => Promise<{ stdout: string; }>; } export interface OperatingSystemProvider { readonly name: NodeJS.Platform; readonly displayName: string; }