/**
 * This file is nothing more than type signatures for the subset of
 * elasticsearch.js that migrations use. There is no actual logic /
 * funcationality contained here.
 */ import { IndexMapping } from '../../mappings' ; export interface CallCluster { ( path , opts ) : Promise < BulkResult > ; ( path , opts ) : Promise < { count : number ; _shards : ShardsInfo ; } > ; ( path , opts ) : Promise < any > ; ( path , opts ) : Promise < any > ; ( path , opts ) : Promise < boolean > ; ( path , opts ) : Promise < boolean > ; ( path , opts ) : Promise < IndicesInfo | NotFound > ; ( path , opts ) : Promise < AliasResult | NotFound > ; ( path , opts ) : Promise < MappingResult > ; ( path , opts ) : Promise < IndexSettingsResult > ; ( path , opts ) : Promise < any > ; ( path , opts ) : Promise < any > ; ( path , opts ) : Promise < any > ; ( path , opts ) : Promise < Array < { name : string ; } > > ; ( path , opts ) : Promise < any > ; ( path , opts ) : Promise < SearchResults > ; ( path , opts ) : Promise < SearchResults > ; ( path , opts ) : Promise < { completed : boolean ; error ? : ErrorResponse ; } > ; } export interface Ignorable { ignore : number [ ] ; } export interface CountOpts { body : { query : object ; } ; index : string ; } export interface PutMappingOpts { body : IndexMapping ; index : string ; } export interface IndexOpts { index : string ; } export interface IndexCreationOpts { index : string ; body ? : { mappings ? : IndexMapping ; settings ? : { number_of_shards : number ; auto_expand_replicas : string ; } ; } ; } export interface ReindexOpts { body : { dest : IndexOpts ; source : IndexOpts & { size : number ; } ; script ? : { source : string ; lang : 'painless' ; } ; } ; refresh : boolean ; waitForCompletion : boolean ; } export type AliasAction = { remove_index : IndexOpts ; } | { remove : { index : string ; alias : string ; } ; } | { add : { index : string ; alias : string ; } ; } ; export interface UpdateAliasesOpts { body : { actions : AliasAction [ ] ; } ; } export interface SearchOpts { body : object ; index : string ; scroll ? : string ; } export interface ScrollOpts { scroll : string ; scrollId : string ; } export interface NotFound { status : 404 ; } export interface MappingResult { [ index ] : { mappings : IndexMapping ; } ; } export interface AliasResult { [ alias ] : object ; } export interface IndexSettingsResult { [ indexName ] : { settings : { index : { number_of_shards : string ; auto_expand_replicas : string ; provided_name : string ; creation_date : string ; number_of_replicas : string ; uuid : string ; version : { created : '7000001' ; } ; } ; } ; } ; } export interface RawDoc { _id : string ; _source : any ; _type ? : string ; } export interface SearchResults { hits : { hits : RawDoc [ ] ; } ; _scroll_id ? : string ; _shards : ShardsInfo ; } export interface ShardsInfo { total : number ; successful : number ; skipped : number ; failed : number ; } export interface ErrorResponse { type : string ; reason : string ; } export interface BulkResult { items : Array < { index : { error ? : ErrorResponse ; } ; } > ; } export interface IndexInfo { aliases : AliasResult ; mappings : IndexMapping ; } export interface IndicesInfo { [ index ] : IndexInfo ; }