import { GatewayConfig, ServiceEndpointDefinition } from '@apollo/gateway'; import { GraphQLDataSource } from '@apollo/gateway/src/datasources/types'; import { Type } from '@nestjs/common'; import { ModuleMetadata } from '@nestjs/common/interfaces'; import { GqlModuleOptions } from './gql-module-options.interface'; export interface GatewayModuleOptions { gateway?: GatewayConfig; server?: Omit; } export interface GatewayOptionsFactory { createGatewayOptions(): Promise | GatewayModuleOptions; } export interface GatewayModuleAsyncOptions extends Pick { useExisting?: Type; useClass?: Type; useFactory?: (...args: any[]) => Promise | GatewayModuleOptions; inject?: any[]; } export declare type GatewayBuildService = (definition: ServiceEndpointDefinition) => GraphQLDataSource;