/** * Helper utilities for the scan command */ import { ToolScoringOutput } from '@aiready/core'; export interface ScanOptions { tools?: string; profile?: string; compareTo?: string; include?: string; exclude?: string; output?: string; outputFile?: string; score?: boolean; noScore?: boolean; weights?: string; threshold?: string; ci?: boolean; failOn?: string; model?: string; apiKey?: string; upload?: boolean; server?: string; } /** * Common options for all tool-specific commands */ export interface BaseCommandOptions { include?: string; exclude?: string; output?: string; outputFile?: string; score?: boolean; } /** * Configuration for the generic tool action */ export interface ToolActionConfig { toolName: string; label: string; emoji: string; defaults: TOptions; getCliOptions: (options: any) => Partial; importTool: () => Promise<{ analyze: (options: TOptions) => Promise; generateSummary: (results: TResults) => TSummary; calculateScore?: (data: any, resultsCount?: number) => ToolScoringOutput; }>; renderConsole: (data: { results: TResults; summary: TSummary; elapsedTime: string; score?: ToolScoringOutput; finalOptions: TOptions; }) => void; preAnalyze?: ( resolvedDir: string, baseOptions: TOptions ) => Promise; } /** * Generic tool action runner to eliminate boilerplate duplication */ export declare function executeToolAction< TResults, TSummary, TOptions extends Record, >( directory: string, options: BaseCommandOptions & any, config: ToolActionConfig ): Promise; /** * Map profile name to tool IDs */ export declare function getProfileTools(profile: string): string[] | undefined; /** * Get default tools list */ export declare function getDefaultTools(): string[]; /** * Create progress callback for tool execution */ export declare function createProgressCallback(): (event: any) => void; //# sourceMappingURL=scan-helpers.d.ts.map