import elastic from '@elastic/elasticsearch';
import { AuthInput, ContractType, Implementations, HandleResult } from './globalTypes.js';
import { AbstractBackend } from './backendAbstract.js';
export declare const client: () => elastic.Client;
export declare const destroyClient: () => void;
export declare const init: () => elastic.Client;
export declare const info: () => import("@elastic/elasticsearch/lib/Transport").TransportRequestPromise<elastic.ApiResponse<Record<string, any>, import("@elastic/elasticsearch/lib/Transport").Context>>;
export declare const createIndex: (name: string) => import("@elastic/elasticsearch/lib/Transport").TransportRequestPromise<elastic.ApiResponse<Record<string, any>, import("@elastic/elasticsearch/lib/Transport").Context>>;
export declare const defaultSize = 64;
declare type ES = Implementations.elasticsearch;
export declare const get: <IN, OUT>(contract: ContractType<"GET", Implementations.elasticsearch, IN, OUT>, auth: AuthInput, idIn: string | string[] | undefined, input?: IN | undefined) => Promise<HandleResult<OUT>>;
export declare const post: <IN, OUT>(contract: ContractType<"POST", Implementations.elasticsearch, IN, OUT>, auth: AuthInput, id: string | undefined, body: IN) => Promise<HandleResult<OUT>>;
export declare const del: <IN, OUT>(contract: ContractType<"DELETE", Implementations.elasticsearch, IN, OUT>, auth: AuthInput, id: string | string[]) => Promise<HandleResult<OUT>>;
export declare const patch: <IN, OUT>(contract: ContractType<"PATCH", Implementations.elasticsearch, IN, OUT>, auth: AuthInput, id: string, body: IN) => Promise<HandleResult<OUT>>;
export declare const put: <IN, OUT>(contract: ContractType<"PUT", Implementations.elasticsearch, IN, OUT>, auth: AuthInput, id: string, body: IN) => Promise<HandleResult<OUT>>;
export declare const getElasticsearchProvider: () => AbstractBackend<ES>;
export {};