import { IElement, IResource } from 'fhirtypes/dist/r4';
import { BundleResponse } from '../../models';
import { BackboneBuilder, IBuildable } from '../base';
import { ExtractUnderscoreKeys } from '../../../core/commons/utils';
type PrimitiveExtensionFields = ExtractUnderscoreKeys<BundleResponse>;
/**
 * @description Interface for chaining the building of a BundleResponse
 * @interface IBundleResponseBuilder
 * @extends {IBuildable<BundleResponse>}
 */
interface IBundleResponseBuilder extends IBuildable<BundleResponse> {
    setStatus(value: string): this;
    setLocation(value: string): this;
    setEtag(value: string): this;
    setLastModified(value: string): this;
    setOutcome(value: IResource & Record<string, any>): this;
}
/**
 * @version R4 (v4.0.1)
 * @summary FHIR® Specification by HL7®
 * @description Class for building a BundleResponse
 * @class BundleResponseBuilder
 * @extends {BackboneBuilder}
 * @implements {IBundleResponseBuilder}
 * @author Roberto Araneda Espinoza
 */
export declare class BundleResponseBuilder extends BackboneBuilder implements IBundleResponseBuilder {
    private readonly bundleResponse;
    constructor();
    /**
     * @description Adds a primitive extension to the element
     * @param param - the field to add the extension to
     * @param extension - the extension to add
     * @returns {this}
     * @example addPrimitiveExtension('_value', { value: 'test' })
     */
    addPrimitiveExtension(param: PrimitiveExtensionFields, extension: IElement): this;
    /**
     * @description Builds the model
     * @returns {BundleResponse}
     */
    build(): BundleResponse;
    /**
     * @description Sets the status value
     * @description The status code returned by processing this entry. The status SHALL start with a 3 digit HTTP code (e.g. 404) and may contain the standard HTTP description associated with the status code.
     * @param value - the value to set
     * @returns {this}
     */
    setStatus(value: string): this;
    /**
     * @description Sets the location value
     * @description The location header created by processing this operation, populated if the operation returns a location.
     * @param value - the value to set
     * @returns {this}
     */
    setLocation(value: string): this;
    /**
     * @description Sets the etag value
     * @description The Etag for the resource, if the operation for the entry produced a versioned resource (see [Resource Metadata and Versioning](http.html#versioning) and [Managing Resource Contention](http.html#concurrency)).
     * @param value - the value to set
     * @returns {this}
     */
    setEtag(value: string): this;
    /**
     * @description Sets the lastModified value
     * @description The date/time that the resource was modified on the server.
     * @param value - the value to set
     * @returns {this}
     */
    setLastModified(value: string): this;
    /**
     * @description Sets the outcome value
     * @description An OperationOutcome containing hints and warnings produced as part of processing this entry in a batch or transaction.
     * @param value - the value to set
     * @returns {this}
     */
    setOutcome(value: IResource & Record<string, any>): this;
}
export {};
