import { BusinessDetails, BusinessesDetailsSearchResponse, BusinessesSearchResponse, LatLngBusinessesSearchRequest, LocationBusinessesSearchRequest } from '@kobdev/types/types/yelp-fusion-plus';
import { AxiosInstance } from 'axios';
import Bottleneck from 'bottleneck';
export declare type IClientOptions = {
    readonly apiKey: string;
    readonly axiosInstance?: AxiosInstance;
};
export declare class Client {
    private axiosInstance;
    private baseUrl;
    limiter: Bottleneck;
    constructor(clientOptions: IClientOptions);
    /** returns detailed business */
    businessDetailsAsync(id: string): Promise<BusinessDetails>;
    /** return detailed business for ids */
    businessesDetailsAsync(ids: string[]): Promise<BusinessDetails[]>;
    /** returns businesses based on the provided search criteria */
    businessesSearchAsync(businessesSearchRequest: LatLngBusinessesSearchRequest | LocationBusinessesSearchRequest): Promise<BusinessesSearchResponse>;
    /** returns detailed businesses based on the provided search criteria  */
    businessesSearchDetailsAsync(businessesSearchRequest: LatLngBusinessesSearchRequest | LocationBusinessesSearchRequest): Promise<BusinessesDetailsSearchResponse>;
    private createNewAxiosInstance;
}
