import type { AuditorInput } from '../types/events.js'; export interface IaCFinding { file: string; line?: number; resource: string; checkId: string; checkType: string; severity: 'critical' | 'high' | 'medium' | 'low'; title: string; guideline?: string; } export interface DockerfileFinding { file: string; line: number; code: string; message: string; severity: 'critical' | 'high' | 'medium' | 'low'; } export interface LocalScanConfig { targetPath: string; scanSecrets?: boolean; scanPackages?: boolean; scanGit?: boolean; scanEnvFiles?: boolean; scanIaC?: boolean; scanDockerfiles?: boolean; fastMode?: boolean; maxDepth?: number; excludePatterns?: string[]; languages?: string[]; scanners?: string[]; } export interface DiscoveredService { id: string; name: string; type: 'database' | 'cache' | 'cloud' | 'api' | 'messaging' | 'storage' | 'auth' | 'monitoring'; source: string; connectionInfo?: string; severity: 'info' | 'low' | 'medium' | 'high' | 'critical'; } export interface DiscoveredModule { id: string; name: string; path: string; type: 'source' | 'component' | 'service' | 'api' | 'lib' | 'config' | 'test' | 'infra' | 'docs'; fileCount: number; files: string[]; imports: string[]; exports: string[]; } export interface LocalScanResult { path: string; timestamp: string; secrets: SecretFinding[]; packages: PackageFinding[]; sastFindings: SastFinding[]; iacFindings: IaCFinding[]; dockerfileFindings: DockerfileFinding[]; gitInfo: GitInfo | null; envFiles: EnvFileFinding[]; systemInfo: SystemInfo; discoveredServices: DiscoveredService[]; discoveredModules: DiscoveredModule[]; toolsUsed: string[]; languagesDetected: string[]; } export interface SecretFinding { file: string; line: number; type: string; snippet: string; severity: 'critical' | 'high' | 'medium' | 'low'; } export interface PackageFinding { name: string; version: string; vulnerabilities: number; severity: 'critical' | 'high' | 'medium' | 'low'; vulnId?: string; title?: string; fixedVersion?: string; } export interface SastFinding { file: string; line: number; rule: string; message: string; severity: string; } export interface GitInfo { branch: string; remoteUrl?: string; uncommittedChanges: number; lastCommit?: string; } export interface EnvFileFinding { file: string; variables: string[]; hasSecrets: boolean; } export interface SystemInfo { platform: string; hostname: string; user: string; nodeVersion: string; cwd: string; } export declare class LocalScanner { private config; constructor(config: LocalScanConfig); scan(): Promise; private detectLanguages; private mergePackageFindings; private discoverServices; private scanFilesForServices; private checkFileForServices; private maskConnectionString; private discoverModules; private scanNestedModules; private analyzeModule; private getCodeFiles; private getSystemInfo; private scanForSecrets; private scanFile; private maskSecret; private scanPackages; private normalizeSeverity; private getGitInfo; private scanEnvFiles; toAuditorInput(result: LocalScanResult): AuditorInput; } export declare function quickLocalScan(targetPath: string): Promise; export interface RemoteScanConfig { gitUrl: string; branch?: string; depth?: number; scanSecrets?: boolean; scanPackages?: boolean; fastMode?: boolean; } export interface RemoteScanResult extends LocalScanResult { gitUrl: string; branch: string; cloneDuration: number; scanDuration: number; } export declare function scanRemoteGit(config: RemoteScanConfig): Promise; export declare function isGitUrl(str: string): boolean;