import { Config, Context, ContextFunction } from 'apollo-server-core';
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 readonly skipPrint;
    constructor({ sdl, dataSources, scalars, enums, context, skipPrint, rootNode, models, plugins, schemaDirectives, }: {
        sdl?: string;
        dataSources?: Record<string, (args: {
            key: string;
        }) => DataSource>;
        scalars?: Record<string, GraphQLScalarType>;
        enums?: Record<string, GraphQLEnumType>;
        context?: Context | ContextFunction;
        skipPrint?: boolean;
        rootNode?: RootNode;
        models?: Model[];
        plugins?: Plugin[];
        schemaDirectives?: Record<string, unknown>;
    });
    private bindDataSourceInModels;
    private createServerConfig;
    createApolloConfig(): Config;
}
