import { SortOptions, StrictSortOptions, StrictOptions } from '../types.cjs';

/**
 * Perform String match() by using a regexp
 *
 * @param {string} s A string
 * @param {RegExp} regexp A regexp to use
 * @param {SortOptions} options
 * @returns {string[]} An array of matched strings, returns an empty array if not matched
 */
declare function matchesWithRegExp(s: string, regexp: RegExp, options?: SortOptions): string[];
/**
 * Extract MD5s from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of MD5s
 */
declare function extractMD5s(s: string, options?: SortOptions): string[];
/**
 * Extract MD5 from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} MD5
 */
declare function extractMD5(s: string): string | null;
/**
 * Extract SHA1s from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of SHA1s
 */
declare function extractSHA1s(s: string, options?: SortOptions): string[];
/**
 * Extract SHA1 from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null } SHA1
 */
declare function extractSHA1(s: string): string | null;
/**
 * Extract SHA256s from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of SHA256s
 */
declare function extractSHA256s(s: string, options?: SortOptions): string[];
/**
 * Extract SHA256 from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null } SHA256
 */
declare function extractSHA256(s: string): string | null;
/**
 * Extract SHA512s from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of SHA512s
 */
declare function extractSHA512s(s: string, options?: SortOptions): string[];
/**
 * Extract SHA512 from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} SHA512
 */
declare function extractSHA512(s: string): string | null;
/**
 * Extract SSDEEPs from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of SSDEEPs
 */
declare function extractSSDEEPs(s: string, options?: SortOptions): string[];
/**
 * Extract SSDEEP from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} SSDEEP
 */
declare function extractSSDEEP(s: string): string | null;
/**
 * Extract ASNs from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of ASNs
 */
declare function extractASNs(s: string, options?: SortOptions): string[];
/**
 * Extract ASN from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string[]} ASN
 */
declare function extractASN(s: string): string | null;
/**
 * Extract domains from a string
 *
 * @export
 * @param {string} s A string
 * @param {StrictSortOptions} options
 * @returns {string[]} An array of domains
 */
declare function extractDomains(s: string, options?: StrictSortOptions): string[];
/**
 * Extract domain from a string
 *
 * @export
 * @param {string} s A string
 * @param {StrictOptions} options
 * @returns {string | null} Domain
 */
declare function extractDomain(s: string, options?: StrictOptions): string | null;
/**
 * Extract emails from a string
 *
 * @export
 * @param {string} s A string
 * @param {StrictSortOptions} options
 * @returns {string[]} An array of emails
 */
declare function extractEmails(s: string, options?: StrictSortOptions): string[];
/**
 * Extract email from a string
 *
 * @export
 * @param {string} s A string
 * @param {StrictOptions} options
 * @returns {string | null} Email
 */
declare function extractEmail(s: string, options?: StrictOptions): string | null;
/**
 * Extract IPv4s from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of IPv4s
 */
declare function extractIPv4s(s: string, options?: SortOptions): string[];
/**
 * Extract IPv4 from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} IPv4
 */
declare function extractIPv4(s: string): string | null;
/**
 * Extract IPv6s from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of IPv6s
 */
declare function extractIPv6s(s: string, options?: SortOptions): string[];
/**
 * Extract IPv6 from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} IPv6
 */
declare function extractIPv6(s: string): string | null;
/**
 * Extract URLs from a string
 *
 * @export
 * @param {string} s A string
 * @param {StrictSortOptions} options
 * @returns {string[]} An array of URLs
 */
declare function extractURLs(s: string, options?: StrictSortOptions): string[];
/**
 * Extract URL from a string
 *
 * @export
 * @param {string} s A string
 * @param {StrictOptions} options
 * @returns {string | null} URL
 */
declare function extractURL(s: string, options?: StrictOptions): string | null;
/**
 * Extract CVEs from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of CVEs
 */
declare function extractCVEs(s: string, options?: SortOptions): string[];
/**
 * Extract CVE from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} CVE
 */
declare function extractCVE(s: string): string | null;
/**
 * Extract BTCs from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of BTCs
 */
declare function extractBTCs(s: string, options?: SortOptions): string[];
/**
 * Extract BTC from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} BTC
 */
declare function extractBTC(s: string): string | null;
/**
 * Extract XMRs from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of XMRs
 */
declare function extractXMRs(s: string, options?: SortOptions): string[];
/**
 * Extract XMR from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string[]} XMR
 */
declare function extractXMR(s: string): string | null;
/**
 * Extract Google Adsense Publisher IDs from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of Google Adsense Publisher IDs
 */
declare function extractGAPubIDs(s: string, options?: SortOptions): string[];
/**
 * Extract Google Adsense Publisher IDs from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} Adsense Publisher ID
 */
declare function extractGAPubID(s: string): string | null;
/**
 * Extract Google Analytics tracking IDs from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of Google Analytics tracking IDs
 */
declare function extractGATrackIDs(s: string, options?: SortOptions): string[];
/**
 * Extract Google Analytics tracking ID from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string[]} Google Analytics tracking ID
 */
declare function extractGATrackID(s: string): string | null;
/**
 * Extract mac addresses from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of mac addresses
 */
declare function extractMacAddresses(s: string, options?: SortOptions): string[];
/**
 * Extract mac address from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string[]} Mac address
 */
declare function extractMacAddress(s: string): string | null;
/**
 * Extract ETH addresses from a string
 *
 * @export
 * @param {string} s A string
 * @param {SortOptions} options
 * @returns {string[]} An array of ETH addresses
 */
declare function extractETHs(s: string, options?: SortOptions): string[];
/**
 * Extract ETH address from a string
 *
 * @export
 * @param {string} s A string
 * @returns {string | null} ETH address
 */
declare function extractETH(s: string): string | null;

export { extractASN, extractASNs, extractBTC, extractBTCs, extractCVE, extractCVEs, extractDomain, extractDomains, extractETH, extractETHs, extractEmail, extractEmails, extractGAPubID, extractGAPubIDs, extractGATrackID, extractGATrackIDs, extractIPv4, extractIPv4s, extractIPv6, extractIPv6s, extractMD5, extractMD5s, extractMacAddress, extractMacAddresses, extractSHA1, extractSHA1s, extractSHA256, extractSHA256s, extractSHA512, extractSHA512s, extractSSDEEP, extractSSDEEPs, extractURL, extractURLs, extractXMR, extractXMRs, matchesWithRegExp };
