import { GraphQLSchema } from 'graphql';
import { GatewayConfig } from '@apollo/gateway';
import { AbstractYogaDriver, YogaDriver, YogaDriverConfig, YogaDriverPlatform } from '@graphql-yoga/nestjs';
import { Type } from '@nestjs/common';
import { GraphQLFederationFactory } from '@nestjs/graphql';
export type YogaFederationDriverConfig<Platform extends YogaDriverPlatform = 'express'> = YogaDriverConfig<Platform>;
export declare class YogaFederationDriver<Platform extends YogaDriverPlatform = 'express'> extends AbstractYogaDriver<Platform> {
    private readonly graphqlFederationFactory;
    private subscriptionService?;
    constructor(graphqlFederationFactory: GraphQLFederationFactory);
    generateSchema(options: YogaFederationDriverConfig<Platform>): Promise<GraphQLSchema>;
    start(options: YogaFederationDriverConfig<Platform>): Promise<void>;
    stop(): Promise<void>;
}
export interface YogaGatewayDriverConfig<Platform extends YogaDriverPlatform = 'express'> {
    driver?: Type<YogaDriver<Platform>>;
    gateway?: GatewayConfig;
    server?: Omit<YogaDriverConfig<Platform>, 'endpoint' | 'schema' | 'typeDefs' | 'definitions' | 'resolvers' | 'resolverValidationOptions' | 'directiveResolvers' | 'autoSchemaFile' | 'transformSchema' | 'subscriptions' | 'buildSchemaOptions' | 'fieldResolverEnhancers' | 'driver'>;
}
export declare class YogaGatewayDriver<Platform extends YogaDriverPlatform = 'express'> extends AbstractYogaDriver<Platform> {
    generateSchema(_options: YogaGatewayDriverConfig<Platform>): Promise<GraphQLSchema>;
    start(options: YogaGatewayDriverConfig<Platform>): Promise<void>;
    mergeDefaultOptions(options: Record<string, unknown>): Promise<Record<string, unknown>>;
}
