import { Tool } from "../../clients/types";
interface GoogleSearchParams {
    q: string;
    cx?: string;
    dateRestrict?: string;
    siteSearch?: string;
    siteSearchFilter?: "e" | "i";
    sort?: string;
    start?: number;
    lr?: string;
    num?: number;
    [key: string]: any;
}
interface GoogleSearchUrlTemplate {
    type: string;
    template: string;
}
interface GoogleSearchQuery {
    title: string;
    totalResults: string;
    searchTerms: string;
    count: number;
    startIndex: number;
    startPage: number;
    language: string;
    inputEncoding: string;
    outputEncoding: string;
    safe: string;
    cx: string;
    sort: string;
    filter: string;
    gl: string;
    cr: string;
    googleHost: string;
    disableCnTwTranslation: string;
    hq: string;
    hl: string;
    siteSearch: string;
    siteSearchFilter: string;
    exactTerms: string;
    excludeTerms: string;
    linkSite: string;
    orTerms: string;
    relatedSite: string;
    dateRestrict: string;
    lowRange: string;
    highRange: string;
    fileType: string;
    rights: string;
    searchType: string;
    imgSize: string;
    imgType: string;
    imgColorType: string;
    imgDominantColor: string;
}
interface GoogleSearchQueries {
    previousPage: GoogleSearchQuery[];
    request: GoogleSearchQuery[];
    nextPage: GoogleSearchQuery[];
}
interface GoogleSearchInformation {
    searchTime: number;
    formattedSearchTime: string;
    totalResults: string;
    formattedTotalResults: string;
}
interface GoogleSearchSpelling {
    correctedQuery: string;
    htmlCorrectedQuery: string;
}
export interface GoogleSearchResponse {
    kind: string;
    url: GoogleSearchUrlTemplate;
    queries: GoogleSearchQueries;
    promotions?: any[];
    context?: any;
    searchInformation: GoogleSearchInformation;
    spelling?: GoogleSearchSpelling;
    items?: any[];
}
interface LlmRelevantSearchResult {
    title: string;
    link: string;
    snippet: string;
    source?: string;
}
export declare function googleSearch(params: GoogleSearchParams): Promise<{
    searchQuery: string;
    totalResults: string;
    results: LlmRelevantSearchResult[];
    usd_cost: number;
}>;
export declare const googleSearchDefinition: Tool;
export default googleSearch;
