import { ApolloGateway } from '@apollo/gateway';
import { InjectionToken } from '@rxdi/core';
import { ApolloServer } from 'apollo-server';
import { ContextFunction } from 'apollo-server-core';
import { ApolloServerExpressConfig } from 'apollo-server-express';
export declare const ApolloServerInternal: InjectionToken<ApolloServer>;
export declare type ApolloServerInternal = ApolloServer;
export declare const ApolloGatewayInternal: InjectionToken<ApolloGateway>;
export declare type ApolloGatewayInternal = ApolloGateway;
export declare type WillSendRequest = (ctx: {
    request: any;
    context: any;
}) => void;
export declare type FederationModuleOptions = {
    port: number | string;
    willSendRequest?: WillSendRequest;
    context?: ContextFunction;
    serviceList: {
        name: string;
        url: string;
    }[];
    apolloServerConfig?: ApolloServerExpressConfig;
};
