import { SdlDirective } from '../interface';
import { SdlField, SdlFieldType } from './interface';
export default abstract class AbstractSdlField implements SdlField {
    private typename;
    private nonNull;
    private list;
    private itemNonNull;
    private description;
    private directives;
    constructor({ typename, nonNull, list, itemNonNull, directives, }: {
        typename: string;
        nonNull?: boolean;
        list?: boolean;
        itemNonNull?: boolean;
        directives?: Record<string, SdlDirective>;
    });
    abstract getFieldType(): SdlFieldType;
    isNonNull(): boolean;
    isList(): boolean;
    isItemNonNull(): boolean;
    getDescription(): string;
    getDirective(name: string): SdlDirective;
    getDirectives(): Record<string, SdlDirective>;
    getTypeName(): string;
}
