import { Config, SchemaDirectiveVisitor } from 'apollo-server';
import { GraphQLEnumType, GraphQLScalarType } from 'graphql';
import { Model } from './dataModel';
import { DataSource } from './dataSource/interface';
import { Plugin } from './plugins';
import RootNode from './rootNode';
export declare class Grapi {
    private readonly sdl;
    private readonly dataSources;
    private readonly scalars;
    private readonly enums;
    private readonly schemaDirectives;
    private readonly context;
    private readonly rootNode;
    private readonly models;
    private readonly userDefinedPlugins;
    private config;
    private skipPrint;
    constructor({ sdl, dataSources, scalars, enums, context, skipPrint, rootNode, models, plugins, schemaDirectives, }: {
        sdl?: string;
        dataSources?: Record<string, (args: any) => DataSource>;
        scalars?: Record<string, GraphQLScalarType>;
        enums?: Record<string, GraphQLEnumType>;
        context?: any;
        skipPrint?: boolean;
        rootNode?: RootNode;
        models?: Model[];
        plugins?: Plugin[];
        schemaDirectives?: Record<string, SchemaDirectiveVisitor>;
    });
    private createServerConfig;
    createApolloConfig(): Config;
}
