import SdlEnumType from '../namedType/enumType';
import SdlObjectType from '../namedType/objectType';
import { SdlFieldType } from './interface';
import AbstractSdlField from './sdlField';
export { SdlFieldType };
export declare class ScalarField extends AbstractSdlField {
    getFieldType(): SdlFieldType;
}
export declare class CustomScalarField extends AbstractSdlField {
    getFieldType(): SdlFieldType;
}
export declare class EnumField extends AbstractSdlField {
    private enumTypeThunk;
    getFieldType(): SdlFieldType;
    setEnumType(enumTypeThunk: () => SdlEnumType): void;
    getEnumType(): SdlEnumType;
}
export declare class ObjectField extends AbstractSdlField {
    private objectTypeThunk;
    getFieldType(): SdlFieldType;
    setObjectType(objectTypeThunk: () => SdlObjectType): void;
    getObjectType(): SdlObjectType;
}
