import { type ReactNode } from 'react'; export interface FirmwareGateProps { devicePath: string; command: 'dev' | 'deploy' | 'console'; /** Skip the y/N prompt and flash immediately on incompatibility. */ yes?: boolean; /** Rendered once the firmware is confirmed compatible (or undetermined). * `compat` is 'best-effort' when the user declined the reflash prompt and * chose to continue against mismatched firmware; pass it to the command's * own session connect so it warns instead of throwing. */ children: (compat: 'enforce' | 'best-effort') => ReactNode; } /** * Gate that sits between device selection and a REPL-class command's UI. * It opens a short probe session to check firmware compatibility: * * - compatible (or undetermined — slow/silent device): render `children` * and let the command connect normally. * - incompatible: prompt to flash CLI-matched firmware (or flash straight * away with `yes`), then exit with a "re-run" hint. We deliberately do * not reconnect after flashing — the device resets and its USB-CDC port * re-enumerates, so a clean re-run is more robust than resuming. * Declining the prompt continues anyway: children render with * compat 'best-effort' so their own connect warns instead of throwing. * * The probe session is always closed before rendering children or flashing * so the port is free for whoever runs next. */ export declare function FirmwareGate(props: FirmwareGateProps): import("react/jsx-runtime").JSX.Element | null; //# sourceMappingURL=FirmwareGate.d.ts.map