import { KeyValueCache } from 'apollo-server-caching';
import { ApolloServerPlugin } from 'apollo-server-plugin-base';
import { GraphQLRequestContext, ValueOrPromise } from 'apollo-server-types';
interface Options<TContext = Record<string, any>> {
    cache?: KeyValueCache;
    sessionId?(requestContext: GraphQLRequestContext<TContext>): ValueOrPromise<string | null>;
    extraCacheKeyData?(requestContext: GraphQLRequestContext<TContext>): ValueOrPromise<any>;
    shouldReadFromCache?(requestContext: GraphQLRequestContext<TContext>): ValueOrPromise<boolean>;
    shouldWriteToCache?(requestContext: GraphQLRequestContext<TContext>): ValueOrPromise<boolean>;
    nodeFQCTTL: number;
}
export default function plugin(options?: Options): ApolloServerPlugin;
export {};
