import { GraphQLSchema, DocumentNode, ExecutionResult } from "graphql"; import { ApolloServer } from "apollo-server"; import type { Collections } from "./collections"; import type { Workspace } from "./data"; import * as Pouch from "./pouch"; export interface Db<_C extends Collections> { /** * Perform a query or mutation via GraphQL interface */ execute(request: DocumentNode | string, variables: any): Promise; } export interface ConnectOptions<_C extends Collections> { adapter?: Pouch.Adapters.AdapterOptions; } export declare const forAttachAndSchema: (options: { attach: (options: Pouch.Adapters.AttachOptions) => Workspace; schema: GraphQLSchema; }) => { connect: (connectOptions?: ConnectOptions | undefined) => Db; serve: (serveOptions?: ConnectOptions | undefined) => ApolloServer; };