/// <reference types="koa__router" />
/// <reference types="node" />
import Koa from 'koa';
import Router from '@koa/router';
import { IResolvers } from 'apollo-server-koa';
import { ApolloServerBase, Context, Config } from 'apollo-server-core';
import { DocumentNode } from 'graphql';
import { Server } from 'http';
declare type CreateMiddlewareParams = {
    typeDefs: DocumentNode;
    resolvers: IResolvers;
    context: (request: any) => Context;
    graphqlConfig: Config;
};
declare type ListenParams = {
    port: string;
    host: string;
};
declare class RecifeKoa {
    app: Koa<Koa.DefaultState, Koa.DefaultContext>;
    router: Router<any, {}>;
    constructor(bodyParser: any, cors: any, homepage: string);
    createApolloServer({ typeDefs, resolvers, context, graphqlConfig }: CreateMiddlewareParams): ApolloServerBase;
    listen({ port, host }: ListenParams, callback: () => void): Server;
}
export default RecifeKoa;
