import type { InstallMethod } from "./utils.js"; export interface InstallStartedEvent { type: "install_started"; mode: "full" | "skills-only"; method: InstallMethod; target: string; pluginVersion: string; } export interface TargetStartedEvent { type: "target_started"; agent: string; } export interface TargetSkippedEvent { type: "target_skipped"; agent: string; reason: "not_detected"; } export interface TargetResultEvent { type: "target_result"; agent: string; method: InstallMethod; skills: number; commands: number; prompts: number; mcpServers: number; status: "ok" | "failed"; reason: string | null; } export interface InstallSummaryEvent { type: "install_summary"; targetsTotal: number; targetsSucceeded: number; targetsFailed: number; skillsTotal: number; commandsTotal: number; promptsTotal: number; mcpServersTotal: number; pluginVersion: string; } export interface InstallCompletedEvent { type: "install_completed"; ok: true; } export interface InstallFailedEvent { type: "install_failed"; code: string; message: string; retryable: boolean; } export type InstallEvent = InstallStartedEvent | TargetStartedEvent | TargetSkippedEvent | TargetResultEvent | InstallSummaryEvent | InstallCompletedEvent | InstallFailedEvent; export type Emitter = (event: InstallEvent) => void; export declare function createEmitter(jsonMode: boolean): Emitter;