import type { ModuleMetadata, Type } from '@nestjs/common'; import type { ClientOptions } from '@opensearch-project/opensearch'; export interface OpensearchClientOptions extends ClientOptions { clientName?: string | symbol; } type OpensearchAsyncClientOptionsBase = OpensearchClientOptions & Pick; interface OpensearchAsyncClientOptionsUseFactory extends OpensearchAsyncClientOptionsBase { inject?: any[]; useFactory: (...args: any[]) => ClientOptions | Promise; } export interface OpensearchClientOptionsFactory { createOpensearchClientOptions: () => ClientOptions | Promise; } interface OpensearchAsyncClientOptionsUseClass extends OpensearchAsyncClientOptionsBase { useClass: Type; } export type OpensearchAsyncClientOptions = OpensearchAsyncClientOptionsUseFactory | OpensearchAsyncClientOptionsUseClass; export {};