import { GraphQLScalarType } from 'graphql'; import { IResolverObject, IResolverOptions, IEnumResolver } from 'graphql-tools'; import { Injector } from '@graphql-modules/di'; import { ModuleSessionInfo } from './module-session-info'; import { GraphQLModule } from './graphql-module'; export declare type Resolvers = Partial<{ [key: string]: (() => any) | Partial> | IResolverOptions | GraphQLScalarType | IEnumResolver; }>; export interface OnInit { onInit(module: GraphQLModule): void; } export interface OnRequest { onRequest(moduleSessionInfo: ModuleSessionInfo): Promise | void; } export interface OnResponse { onResponse(moduleSessionInfo: ModuleSessionInfo): Promise | void; } export declare type OnConnectFn = (connectionParams: ConnectionParams, websocket: WebSocket, connectionContext: ConnectionContext) => Result | Promise; export interface OnConnect { onConnect: OnConnectFn; } export declare type OnOperationFn = (message: SubscriptionMessage, params: SubscriptionOptions, WebSocket: WebSocket) => Result; export interface OnOperation { onOperation: OnOperationFn; } export declare type OnOperationCompleteFn = (websocket: WebSocket, opId: OpId) => OnOperationCompleteResult; export interface OnOperationComplete { onOperationComplete: OnOperationCompleteFn; } export declare type OnDisconnectFn = (websocket: WebSocket, connectionContext: ConnectionContext) => Result; export interface OnDisconnect { onDisconnect: OnDisconnectFn; } export declare type OnErrorFn = (e: Error) => any; export interface OnError { onError: OnErrorFn; } export interface SubscriptionHooks { onConnect: OnConnectFn; onOperation: OnOperationFn; onOperationComplete: OnOperationCompleteFn; onDisconnect: OnDisconnectFn; } export declare type ModuleContext = Context & { injector: Injector; };