/**
 * Types for the vibe setup wizard
 */
export interface WizardState {
    detectedApps: DetectedApp[];
    existingConfigs: ExistingConfig[];
    selectedApps: string[];
    importStrategy: ImportStrategy;
    selectedExample?: ExampleConfig;
    perAppSelections: Record<string, SelectedServer[]>;
    toolsets: ToolsetDefinition[];
    installationType: InstallationType;
    serverNameMapping: Record<string, string>;
    dryRun: boolean;
    nonInteractive: boolean;
    verbose: boolean;
    experimental?: boolean;
    cancelled?: boolean;
}
export interface DetectedApp {
    id: string;
    displayName: string;
    configPath: string;
    detected: boolean;
    hasExistingConfig: boolean;
    serverCount?: number;
}
export interface ExistingConfig {
    appId: string;
    servers: ServerInfo[];
    configPath: string;
}
export interface ServerInfo {
    name: string;
    command: string;
    args?: string[];
    description?: string;
    fromApp: string;
}
/**
 * Example configuration template
 */
export interface ExampleConfig {
    id: string;
    name: string;
    description: string;
    fileName: string;
    serverCount: number;
    requiresSecrets: boolean;
    category: "zero-setup" | "specialized" | "full-featured";
}
export interface SelectedServer extends ServerInfo {
    selected: boolean;
    newName?: string;
}
export type ImportStrategy = "per-app" | "fresh" | "examples" | "view";
export type InstallationType = "standard" | "development" | "custom";
export interface ToolsetDefinition {
    name: string;
    displayName: string;
    description: string;
    tools: string[];
    suggested: boolean;
}
export interface WizardStep {
    name: string;
    run(state: WizardState): Promise<WizardState>;
    canSkip?: boolean;
}
export interface SetupOptions {
    yes?: boolean;
    dryRun?: boolean;
    apps?: string[];
    importAll?: boolean;
    standard?: boolean;
    development?: boolean;
    skipToolsets?: boolean;
    verbose?: boolean;
    example?: string;
    listExamples?: boolean;
    experimental?: boolean;
    isFirstRun?: boolean;
}
//# sourceMappingURL=types.d.ts.map