import * as t from 'io-ts';
import { IMeta } from './RTTI_Meta';
import { IElement } from './RTTI_Element';
import { INarrative } from './RTTI_Narrative';
import { IResourceList } from '../Union/RTTI_ResourceList';
import { IExtension } from './RTTI_Extension';
import { IIdentifier } from './RTTI_Identifier';
import { ICodeableConcept } from './RTTI_CodeableConcept';
import { IReference } from './RTTI_Reference';
import { IPeriod } from './RTTI_Period';
import { IExplanationOfBenefit_Related } from './RTTI_ExplanationOfBenefit_Related';
import { IExplanationOfBenefit_Payee } from './RTTI_ExplanationOfBenefit_Payee';
import { IExplanationOfBenefit_CareTeam } from './RTTI_ExplanationOfBenefit_CareTeam';
import { IExplanationOfBenefit_SupportingInfo } from './RTTI_ExplanationOfBenefit_SupportingInfo';
import { IExplanationOfBenefit_Diagnosis } from './RTTI_ExplanationOfBenefit_Diagnosis';
import { IExplanationOfBenefit_Procedure } from './RTTI_ExplanationOfBenefit_Procedure';
import { IExplanationOfBenefit_Insurance } from './RTTI_ExplanationOfBenefit_Insurance';
import { IExplanationOfBenefit_Accident } from './RTTI_ExplanationOfBenefit_Accident';
import { IExplanationOfBenefit_Item } from './RTTI_ExplanationOfBenefit_Item';
import { IExplanationOfBenefit_AddItem } from './RTTI_ExplanationOfBenefit_AddItem';
import { IExplanationOfBenefit_Adjudication } from './RTTI_ExplanationOfBenefit_Adjudication';
import { IExplanationOfBenefit_Total } from './RTTI_ExplanationOfBenefit_Total';
import { IExplanationOfBenefit_Payment } from './RTTI_ExplanationOfBenefit_Payment';
import { IAttachment } from './RTTI_Attachment';
import { IExplanationOfBenefit_ProcessNote } from './RTTI_ExplanationOfBenefit_ProcessNote';
import { IExplanationOfBenefit_BenefitBalance } from './RTTI_ExplanationOfBenefit_BenefitBalance';
export declare enum ExplanationOfBenefitStatusKind {
    _active = "active",
    _cancelled = "cancelled",
    _draft = "draft",
    _enteredInError = "entered-in-error"
}
import { IDomainResource } from './IDomainResource';
export interface IExplanationOfBenefit extends IDomainResource {
    resourceType: 'ExplanationOfBenefit';
    type: ICodeableConcept;
    patient: IReference;
    insurer: IReference;
    provider: IReference;
    insurance: IExplanationOfBenefit_Insurance[];
    id?: string;
    meta?: IMeta;
    implicitRules?: string;
    _implicitRules?: IElement;
    language?: string;
    _language?: IElement;
    text?: INarrative;
    contained?: IResourceList[];
    extension?: IExtension[];
    modifierExtension?: IExtension[];
    identifier?: IIdentifier[];
    status?: ExplanationOfBenefitStatusKind;
    _status?: IElement;
    subType?: ICodeableConcept;
    use?: string;
    _use?: IElement;
    billablePeriod?: IPeriod;
    created?: string;
    _created?: IElement;
    enterer?: IReference;
    priority?: ICodeableConcept;
    fundsReserveRequested?: ICodeableConcept;
    fundsReserve?: ICodeableConcept;
    related?: IExplanationOfBenefit_Related[];
    prescription?: IReference;
    originalPrescription?: IReference;
    payee?: IExplanationOfBenefit_Payee;
    referral?: IReference;
    facility?: IReference;
    claim?: IReference;
    claimResponse?: IReference;
    outcome?: string;
    _outcome?: IElement;
    disposition?: string;
    _disposition?: IElement;
    preAuthRef?: string[];
    _preAuthRef?: IElement[];
    preAuthRefPeriod?: IPeriod[];
    careTeam?: IExplanationOfBenefit_CareTeam[];
    supportingInfo?: IExplanationOfBenefit_SupportingInfo[];
    diagnosis?: IExplanationOfBenefit_Diagnosis[];
    procedure?: IExplanationOfBenefit_Procedure[];
    precedence?: number;
    _precedence?: IElement;
    accident?: IExplanationOfBenefit_Accident;
    item?: IExplanationOfBenefit_Item[];
    addItem?: IExplanationOfBenefit_AddItem[];
    adjudication?: IExplanationOfBenefit_Adjudication[];
    total?: IExplanationOfBenefit_Total[];
    payment?: IExplanationOfBenefit_Payment;
    formCode?: ICodeableConcept;
    form?: IAttachment;
    processNote?: IExplanationOfBenefit_ProcessNote[];
    benefitPeriod?: IPeriod;
    benefitBalance?: IExplanationOfBenefit_BenefitBalance[];
}
export declare const RTTI_ExplanationOfBenefit: t.Type<IExplanationOfBenefit>;
