import { ApiResponse, Client, RequestParams } from '@elastic/elasticsearch';
import { IBulkResponse, ICountResponse, ISearchResponse } from './interfaces';
export declare class ElasticClient {
    get client(): Client;
    private _client;
    private _index;
    constructor();
    index(params: RequestParams.Index): Promise<ApiResponse>;
    putSettings(params: any): Promise<ApiResponse<any, any>>;
    catIndices(params: RequestParams.CatIndices): Promise<ApiResponse<any, any>>;
    ping(): Promise<ApiResponse<any>>;
    bulk(params: RequestParams.Bulk<any>): Promise<ApiResponse<any, any>>;
    search<T = any>(searchParams: any, requestParams: RequestParams.Search): Promise<ApiResponse<ISearchResponse<T, any>>>;
    aggregate<T = any>(searchParams: any, requestParams: RequestParams.Search): Promise<ApiResponse<ISearchResponse<any, T>>>;
    searchAndAggregate<T, A>(searchParams: any, requestParams: RequestParams.Search): Promise<ApiResponse<ISearchResponse<T, A>>>;
    count(searchParams: any): Promise<ApiResponse<ICountResponse>>;
    executeBulk(bulk: any[]): Promise<ApiResponse<IBulkResponse[]>>;
    maping(mapping: any): Promise<ApiResponse<any>>;
    prepareBulkErrors(bulkResponse: ApiResponse, bulk: any): any[];
    private prepareRawQuery;
}
