import { HttpClient } from '../../core/http-client'; import { FileUploadOptions, FileUploadResult, FileDownloadOptions, FileDownloadResult, FileReportResult, IPReportResult, DomainReportResult, FileSimilarityResult, FileAssociatedIoCsResult, IPAssociatedIoCsResult, DomainAssociatedIoCsResult, TagSearchOptions, TagSearchResult } from './types'; export { FileUploadOptions, FileUploadResult, FileDownloadOptions, FileDownloadResult, FileReportResult, AttackTechnique, IPReportResult, DomainReportResult, ThreatActor, Campaign, APTCampaignStatistics, SimilarFile, FileSimilarityResult, AssociatedFile, AssociatedIP, AssociatedDomain, AssociatedURL, FileAssociatedIoCsResult, IPAssociatedIoCsResult, DomainAssociatedIoCsResult, TagSearchOptions, TagSearchFile, TagSearchResult, } from './types'; /** * IoC Intelligence Module * Handles file uploads, downloads, and IoC analysis */ export declare class IoCIntelligence { private readonly fileUpload; private readonly fileDownload; private readonly fileReport; private readonly ipReport; private readonly domainReport; private readonly fileSimilarity; private readonly fileAssociated; private readonly ipAssociated; private readonly domainAssociated; private readonly tagSearch; constructor(httpClient: HttpClient); /** * Upload a file for analysis * * @example * ```typescript * // Public upload * const result = await client.ioc.uploadFile('./sample.exe'); * * // Private upload * const result = await client.ioc.uploadFile('./sensitive.exe', { private: true }); * ``` */ uploadFile(filePath: string, options?: FileUploadOptions): Promise; /** * Upload a file buffer for analysis * * @example * ```typescript * const buffer = fs.readFileSync('./sample.exe'); * const result = await client.ioc.uploadBuffer(buffer, 'sample.exe'); * ``` */ uploadBuffer(buffer: Buffer, fileName: string, options?: FileUploadOptions): Promise; /** * Download a file by hash * * @param hash - MD5, SHA1, or SHA256 hash * @param options - Download options (password for encrypted files) * * @example * ```typescript * // Download by SHA256 * const result = await client.ioc.downloadFile('ABC123...'); * fs.writeFileSync('malware.bin', result.data); * * // Download with password * const result = await client.ioc.downloadFile('ABC123...', { password: 'infected' }); * ``` */ downloadFile(hash: string, options?: FileDownloadOptions): Promise; /** * Get file analysis report by hash * * @param hash - MD5, SHA1, or SHA256 hash * * @example * ```typescript * const report = await client.ioc.getFileReport('ABC123...'); * console.log(report.detect); // 'exe.trojan.hupigon' or 'normal' * console.log(report.threatTypes); // ['downloader', 'trojan'] * console.log(report.attackTechniques); // MITRE ATT&CK techniques * ``` */ getFileReport(hash: string): Promise; /** * Get IP analysis report with APT intelligence * * @param ip - IPv4 address * * @example * ```typescript * const report = await client.ioc.getIPReport('156.232.139.135'); * console.log(report.detect); // 'malicious' or 'normal' * console.log(report.countryName); // 'Seychelles' * console.log(report.aptThreatActors); // APT groups * console.log(report.aptCampaigns); // Related campaigns * console.log(report.aptCampaignStatistics); // Campaign stats * ``` */ getIPReport(ip: string): Promise; /** * Get domain analysis report with APT intelligence * * @param domain - Domain name (e.g., 'example.com') * * @example * ```typescript * const report = await client.ioc.getDomainReport('malicious-domain.com'); * console.log(report.detect); // 'malicious' or 'normal' * console.log(report.hostIps); // Related IP addresses * console.log(report.aptThreatActors); // APT groups * console.log(report.aptCampaigns); // Related campaigns * console.log(report.aptCampaignStatistics); // Campaign stats * ``` */ getDomainReport(domain: string): Promise; /** * Get similar files by hash * * @param hash - MD5, SHA1, or SHA256 hash * * @example * ```typescript * const similarFiles = await client.ioc.getSimilarFiles('ABC123...'); * similarFiles.forEach(file => { * console.log(file.hash.sha256); // Similar file hash * console.log(file.detect); // 'exe.trojan.hupigon' or 'normal' * console.log(file.fileType); // 'exe_32bit' * }); * ``` */ getSimilarFiles(hash: string): Promise; /** * Get associated IoCs (dropped files, downloaded files, contacted IPs/domains/URLs) * * @param hash - MD5, SHA1, or SHA256 hash * * @example * ```typescript * const associated = await client.ioc.getAssociatedIoCs('ABC123...'); * console.log(associated.droppedFiles); // Files dropped by this file * console.log(associated.downloadedFiles); // Files downloaded by this file * console.log(associated.contactedIPs); // IPs contacted by this file * console.log(associated.contactedDomains); // Domains contacted by this file * console.log(associated.contactedURLs); // URLs contacted by this file * ``` */ getAssociatedIoCs(hash: string): Promise; /** * Get associated IoCs for an IP (communicating files, downloaded files) * * @param ip - IPv4 address * * @example * ```typescript * const associated = await client.ioc.getIPAssociatedIoCs('156.232.139.135'); * console.log(associated.communicatingFiles); // Files that communicated with this IP * console.log(associated.downloadedFiles); // Files downloaded from this IP * ``` */ getIPAssociatedIoCs(ip: string): Promise; /** * Get associated IoCs for a domain (communicating files, downloaded files, resolved IPs) * * @param domain - Domain name (e.g., 'example.com') * * @example * ```typescript * const associated = await client.ioc.getDomainAssociatedIoCs('malicious-domain.com'); * console.log(associated.communicatingFiles); // Files that communicated with this domain * console.log(associated.downloadedFiles); // Files downloaded from this domain * console.log(associated.resolvedIPs); // IPs that resolved to this domain * ``` */ getDomainAssociatedIoCs(domain: string): Promise; /** * Search files by tag(s) * * @param tags - Single tag or array of tags (max 3, comma-separated) * @param options - Search options (limit, start date, end date) * * @example * ```typescript * // Single tag search * const files = await client.ioc.searchByTag('trojan'); * * // Multiple tags * const files = await client.ioc.searchByTag(['trojan', 'worm']); * * // With options * const files = await client.ioc.searchByTag('ransomware', { * limit: 100, * start: '2024-01-01T00:00:00Z', * end: '2024-12-31T23:59:59Z' * }); * * files.forEach(file => { * console.log(file.hash.sha256); * console.log(file.tags); // ['trojan', 'worm', ...] * console.log(file.detect); // 'exe.trojan.hupigon' * }); * ``` */ searchByTag(tags: string | string[], options?: TagSearchOptions): Promise; } //# sourceMappingURL=index.d.ts.map