import { GraphQLResolveInfo } from 'graphql'; import { ArgsValue, GetGen, MaybePromise, MaybePromiseDeep, ResultValue } from '../typegenTypeHelpers'; import { IsEqual } from '../typeHelpersInternal'; import { CommonOutputFieldConfig } from './definitionBlocks'; import { AllNexusOutputTypeDefs } from './wrapping'; export interface SubscriptionTypeConfigBase { resolve(root: Event, args: ArgsValue<'Subscription', FieldName>, context: GetGen<'context'>, info: GraphQLResolveInfo): MaybePromise> | MaybePromiseDeep>; subscribe(root: object, args: ArgsValue<'Subscription', FieldName>, ctx: GetGen<'context'>, info: GraphQLResolveInfo): MaybePromise> | MaybePromiseDeep>; } export declare type SubscriptionScalarConfig = CommonOutputFieldConfig<'Subscription', FieldName> & SubscriptionTypeConfigBase; export interface SubscriptionTypeConfig extends SubscriptionScalarConfig { type: GetGen<'allOutputTypes'> | AllNexusOutputTypeDefs; } export interface SubscriptionBuilder { list: SubscriptionBuilder; nonNull: Omit; nullable: Omit; string(fieldName: FieldName, config: SubscriptionScalarConfig): void; int(fieldName: FieldName, config: SubscriptionScalarConfig): void; boolean(fieldName: FieldName, opts: SubscriptionScalarConfig): void; id(fieldName: FieldName, config: SubscriptionScalarConfig): void; float(fieldName: FieldName, config: SubscriptionScalarConfig): void; field(name: FieldName, fieldConfig: SubscriptionTypeConfig): void; } export declare type SubscriptionTypeParams = { definition(t: SubscriptionBuilder): void; }; export declare function subscriptionType(config: SubscriptionTypeParams): import("./objectType").NexusObjectTypeDef; export declare type IsSubscriptionType = IsEqual;