import type { DocumentNode, GraphQLSchema } from 'graphql'; import type { Plugin } from '@envelop/core'; import { envelop } from '@envelop/core'; import type { KeyValueCache, Logger, MeshFetch, MeshPlugin, MeshPubSub, RawSourceOutput } from '@graphql-mesh/types'; import type { ExecuteMeshFn, GetMeshOptions, MeshExecutor, SubscribeMeshFn } from './types.cjs'; type SdkRequester = (document: DocumentNode, variables?: any, operationContext?: any) => any; export interface MeshInstance extends Disposable { execute: ExecuteMeshFn; subscribe: SubscribeMeshFn; schema: GraphQLSchema; createExecutor(globalContext: any): MeshExecutor; rawSources: RawSourceOutput[]; destroy(): void; pubsub: MeshPubSub; cache: KeyValueCache; logger: Logger; plugins: Plugin[]; getEnveloped: ReturnType; sdkRequesterFactory(globalContext: any): SdkRequester; } export declare function wrapFetchWithPlugins(plugins: MeshPlugin[]): MeshFetch; export declare function getMesh(options: GetMeshOptions): Promise; export {};