import { AddressTypeType, AddressUseType, IAddress, IElement, IPeriod } from 'fhirtypes/dist/r4';
import { Address } from '../../models';
import { IBuildable } from '../base/IBuildable';
import { UnderscoreKeys } from '../base/resource-type-map.interface';
import { ElementBuilder } from '../base/ElementBuilder';
type PrimitiveExtensionFields = keyof Pick<IAddress, UnderscoreKeys<IAddress>>;
interface IAddressBuilder extends IBuildable<Address> {
    setUse(value: AddressUseType): this;
    setType(value: AddressTypeType): this;
    setText(value: string): this;
    addLine(value: string): this;
    setCity(value: string): this;
    setDistrict(value: string): this;
    setState(value: string): this;
    setPostalCode(value: string): this;
    setCountry(value: string): this;
    setPeriod(value: IPeriod): this;
}
export declare class AddressBuilder extends ElementBuilder implements IAddressBuilder {
    private readonly address;
    constructor();
    addPrimitiveExtension<T extends PrimitiveExtensionFields>(param: T, extension: T extends '_line' ? IElement[] : IElement): this;
    setUse(value: AddressUseType): this;
    setType(value: AddressTypeType): this;
    setText(value: string): this;
    addLine(value: string): this;
    setCity(value: string): this;
    setDistrict(value: string): this;
    setState(value: string): this;
    setPostalCode(value: string): this;
    setCountry(value: string): this;
    setPeriod(value: IPeriod): this;
    build(): Address;
}
export {};
