export type ScanDataFlag = 'orphans' | 'stale' | 'invalid' | 'packages'; export interface ScanDataInput { projectId: string; validate?: boolean; flags?: ScanDataFlag[]; days?: number; } export interface PackageInfo { name: string; current_version?: string; latest_version?: string; ecosystem: string; is_outdated: boolean; is_deprecated: boolean; has_vulnerability: boolean; vulnerability_info?: string; } export interface PackageManifest { file_path: string; ecosystem: string; packages: PackageInfo[]; parse_errors: string[]; } export interface PackageHealthSummary { manifests_scanned: number; total_packages: number; outdated_count: number; deprecated_count: number; vulnerable_count: number; packages_by_ecosystem: Record; } export interface SentinelDataScanResult { summary: string; counts: { issues: { total: number; open: number; in_progress: number; done: number; blocked: number; }; epics: { total: number; open: number; in_progress: number; done: number; blocked: number; }; adrs: { total: number; }; packages?: PackageHealthSummary; }; orphans?: { epics: string[]; issues: string[]; }; stale?: { issues: string[]; epics: string[]; }; validationWarnings?: { id?: string; message: string; }[]; package_manifests?: PackageManifest[]; } export interface ScanDataError { error: string; exitCode: number; stderr: string; } /** * Build the command arguments for the Python data inspector. * Exported for testing purposes. */ export declare function buildCommandArgs(projectRoot: string, options: { validate?: boolean; flags?: ScanDataFlag[]; days?: number; }): string[]; /** * Execute the Python sentinel.data_inspector and return parsed results. */ export declare function scanData(input: ScanDataInput): Promise; /** * Check if a result is an error */ export declare function isScanDataError(result: SentinelDataScanResult | ScanDataError): result is ScanDataError; //# sourceMappingURL=sentinel-scan-data.d.ts.map