declare module 'outscraper' { export interface RequestParams { [key: string]: any; } export interface OutscraperResponse { data: T; } export interface AsyncResponse { status?: string; id?: string; results_location?: string; error?: string; errorMessage?: string; data?: any; [key: string]: any; } export interface GoogleMapsPhotosOptions { photosLimit?: number; limit?: number; tag?: string; language?: string; region?: string; fields?: string; async?: boolean; ui?: boolean; webhook?: string; } export class Outscraper { constructor(apiKey: string); getAPIRequest(path: string, parameters: RequestParams): Promise; postAPIRequest(path: string, parameters: RequestParams): Promise; handleAsyncResponse(response: any, asyncRequest: boolean): any | AsyncResponse; getRequestsHistory(type?: string): Promise; getRequestArchive(requestId: string): Promise; googleSearch( query: string | string[], pagesPerQuery?: number, uule?: string, language?: string, region?: string | null, asyncRequest?: boolean ): Promise; googleSearchNews( query: string | string[], pagesPerQuery?: number, uule?: string, tbs?: string, language?: string, region?: string | null, asyncRequest?: boolean ): Promise; googleMapsSearch( query: string | string[], limit?: number, language?: string, region?: string | null, skip?: number, dropDuplicates?: boolean, enrichment?: string | string[] | null, asyncRequest?: boolean ): Promise; googleMapsSearchV3( query: string | string[], limit?: number, language?: string, region?: string | null, skip?: number, dropDuplicates?: boolean, enrichment?: string | string[] | null, asyncRequest?: boolean ): Promise; googleMapsDirections( origin: string | string[], destination: string | string[], departure_time?: string | null, finish_time?: string | null, interval?: number, travel_mode?: string, language?: string, region?: string | null, fields?: string | string[] | null, asyncRequest?: boolean ): Promise; googleMapsReviews( query: string | string[], reviewsLimit?: number, reviewsQuery?: string | null, limit?: number, sort?: string, lastPaginationId?: string | null, start?: string | null, cutoff?: string | null, cutoffRating?: number | null, ignoreEmpty?: boolean, source?: string, language?: string, region?: string | null, fields?: string, asyncRequest?: boolean ): Promise; getGoogleMapsPhotos( query: string | string[], options?: GoogleMapsPhotosOptions ): Promise; googlePlayReviews( query: string | string[], reviewsLimit?: number, sort?: string, cutoff?: string | null, rating?: number | null, language?: string, fields?: string | string[] | null, asyncRequest?: boolean ): Promise; contactsAndLeads( query: string | string[], fields?: string | string[] | null, asyncRequest?: boolean, preferredContacts?: string | string[] | null, contactsPerCompany?: number, emailsPerContact?: number, skipContacts?: number, generalEmails?: boolean, ui?: boolean, webhook?: string | null ): Promise; emailsAndContacts( query: string | string[], preferredContacts?: string | string[] | null, asyncRequest?: boolean ): Promise; phonesEnricher( query: string | string[], asyncRequest?: boolean ): Promise; amazonProducts( query: string | string[], limit?: number, domain?: string, postalCode?: string, fields?: string | string[] | null, asyncRequest?: boolean ): Promise; amazonReviews( query: string | string[], limit?: number, sort?: string, filterByReviewer?: string, filterByStar?: string, domain?: string | null, fields?: string | string[] | null, asyncRequest?: boolean ): Promise; yelpSearch( query: string | string[], limit?: number, asyncRequest?: boolean ): Promise; yelpReviews( query: string | string[], limit?: number, cursor?: string, sort?: string, cutoff?: string, fields?: string, asyncRequest?: boolean ): Promise; tripadvisorReviews( query: string | string[], limit?: number, asyncRequest?: boolean ): Promise; appStoreReviews( query: string | string[], limit?: number, sort?: string, cutoff?: string | null, fields?: string, asyncRequest?: boolean ): Promise; youtubeComments( query: string | string[], perQuery?: number, language?: string, region?: string, fields?: string, asyncRequest?: boolean ): Promise; g2Reviews( query: string | string[], limit?: number, sort?: string, cutoff?: string | null, fields?: string | string[] | null, asyncRequest?: boolean ): Promise; trustpilotReviews( query: string | string[], limit?: number, languages?: string, sort?: string, cutoff?: string | null, fields?: string, asyncRequest?: boolean ): Promise; trustpilot( query: string | string[], enrichment?: string[], fields?: string, asyncRequest?: boolean ): Promise; trustpilotSearch( query: string | string[], limit?: number, skip?: number, enrichment?: string[], fields?: string, asyncRequest?: boolean ): Promise; getGlassdoorReviews( query: string | string[], limit?: number, sort?: string, cutoff?: string | null, asyncRequest?: boolean ): Promise; capterraReviews( query: string | string[], limit?: number, sort?: string, cutoff?: string | null, language?: string, region?: string | null, fields?: string | string[] | null, asyncRequest?: boolean ): Promise; geocoding( query: string | string[], asyncRequest?: boolean ): Promise; reverseGeocoding( query: string | string[], asyncRequest?: boolean ): Promise; phoneIdentityFinder( query: string | string[], asyncRequest?: boolean ): Promise; addressScraper( query: string | string[], asyncRequest?: boolean ): Promise; companyInsights( query: string | string[], fields?: string, asyncRequest?: boolean, enrichments?: string | string[] ): Promise; validateEmails( query: string | string[], asyncRequest?: boolean ): Promise; similarweb( query: string | string[], fields?: string | string[] | null, asyncRequest?: boolean, ui?: boolean | null, webhook?: string | null ): Promise; companyWebsitesFinder( query: string | string[], fields?: string | string[] | null, asyncRequest?: boolean, ui?: boolean | null, webhook?: string | null ): Promise; businessesSearch( filters?: RequestParams | null, limit?: number, includeTotal?: boolean, cursor?: string | null, fields?: string | string[] | null, asyncRequest?: boolean, ui?: boolean, webhook?: string | null, query?: string | null ): Promise; businessesIterSearch( filters?: RequestParams | null, limit?: number, fields?: string | string[] | null, includeTotal?: boolean ): AsyncIterableIterator; businessesGet( businessId: string, fields?: string | string[] | null, asyncRequest?: boolean, ui?: boolean, webhook?: string | null ): Promise; } } export = Outscraper;