import { HttpClient } from '../../core/http-client'; import { AdvancedSearchRequestOptions, AdvancedSearchRequestResult, AdvancedSearchResponseResult } from './types'; export { AdvancedSearchIoCType, AdvancedSearchRequestOptions, AdvancedSearchRequestResult, AdvancedSearchResponseResult, SearchResultFileHash, SearchResultFile, SearchResultIP, SearchResultDomain, SearchResponseAPTVictims, SearchResponseAPTCampaign, SearchResponseAPTStatistics, SearchResponseIPItem, SearchResponseFileItem, SearchResponseDomainItem, } from './types'; /** * Search Module * Advanced search capabilities for IoCs */ export declare class Search { private readonly advancedSearchRequest; private readonly advancedSearchResponse; constructor(httpClient: HttpClient); /** * Submit an advanced search request * * @param options - Search options * @param options.iocType - Type of IoC to search ('file', 'ip', 'domain') * @param options.query - Query string using CTX query syntax * @param options.cursor - Cursor for pagination (from previous response) * * @example * ```typescript * // Search for files with specific tags * const result = await client.search.advancedSearch({ * iocType: 'file', * query: 'tags:Ransomware AND threat_types:Trojan', * }); * * console.log(result.reqId); // Use this to get results * console.log(result.totalCount); // Total matching results * console.log(result.cursor); // Use for next page * ``` */ advancedSearch(options: AdvancedSearchRequestOptions): Promise; /** * Get advanced search results by request ID * Automatically polls until results are ready (with configurable retries) * * @param reqId - Request ID from advancedSearch response * @param options - Optional polling settings * @param options.maxRetries - Maximum number of retries while analyzing (default: 10) * @param options.retryDelay - Delay between retries in ms (default: 2000) * * @example * ```typescript * // First, submit a search request * const searchResult = await client.search.advancedSearch({ * iocType: 'ip', * query: 'country_code : CN', * }); * * // Then, retrieve the results using reqId (auto-polls until ready) * const results = await client.search.getSearchResults(searchResult.reqId); * * console.log(results.totalCount); // Total matching results * console.log(results.list); // Array of result items * console.log(results.cursor); // Use for next page * * // Each item contains APT campaign info * results.list.forEach((item) => { * if ('ipv4' in item) { * console.log(item.ipv4, item.countryName); * console.log(item.aptCampaign.threatActors); * console.log(item.aptCampaignStatistics); * } * }); * * // Custom polling settings * const results2 = await client.search.getSearchResults(reqId, { * maxRetries: 20, * retryDelay: 3000 * }); * ``` */ getSearchResults(reqId: string, options?: { maxRetries?: number; retryDelay?: number; }): Promise; } //# sourceMappingURL=index.d.ts.map