import type { IElement, IIdentifier, ResourceTypesType } from 'fhirtypes/dist/r4';
import { Reference } from '../../models';
import { IBuildable } from '../base/IBuildable';
import { UnderscoreKeys } from '../base/resource-type-map.interface';
import { ElementBuilder } from '../base/ElementBuilder';
type PrimitiveExtensionFields = keyof Pick<Reference, UnderscoreKeys<Reference>>;
interface IReferenceBuilder extends IBuildable<Reference> {
    setReference(value: {
        resourceType: ResourceTypesType;
        id: string | number;
    } | string): this;
    setDisplay(value: string): this;
    setIdentifier(value: IIdentifier): this;
    setType(value: string): this;
}
export declare class ReferenceBuilder extends ElementBuilder implements IReferenceBuilder {
    private readonly reference;
    constructor();
    addPrimitiveExtension(param: PrimitiveExtensionFields, extension: IElement): this;
    setReference(value: {
        resourceType: ResourceTypesType;
        id: string | number;
    } | string): this;
    setDisplay(value: string): this;
    setIdentifier(value: IIdentifier): this;
    setType(value: string): this;
    build(): Reference;
}
export {};
