import { FieldConfig, ObjectTypeConfig } from '../config'; import { ValidationContext } from '../validation'; import { Field, SystemFieldConfig } from './field'; import { Model } from './model'; import { TypeBase } from './type-base'; import { DirectiveNode } from 'graphql/index'; export declare abstract class ObjectTypeBase extends TypeBase { readonly fields: ReadonlyArray; private readonly fieldMap; readonly systemFieldOverrides: ReadonlyMap; readonly systemFields: ReadonlyMap; readonly systemFieldConfigs: ReadonlyMap; readonly kindAstNode?: DirectiveNode; protected constructor(input: ObjectTypeConfig, model: Model, systemFieldInputs?: ReadonlyArray); validate(context: ValidationContext): void; private validateSystemFieldOverrides; private validateDuplicateFields; getField(name: string): Field | undefined; getFieldOrThrow(name: string): Field; getSystemFieldOrThrow(name: string): Field; private systemFieldOverrideToSystemFieldConfig; readonly isObjectType: true; readonly isScalarType: false; readonly isEnumType: false; }