import { ADDRESS, ATTACHMENT, CODEABLE_CONCEPT, EXTENSION, IDENTTIFIER, MONEY, MULTI_RESOURCE, PERIOD, REFERENCE } from "../config";
import { ResourceMaster } from "../Interfaces";
import { SAMPLE_QUANTITY } from "../resources/Observation";
import ResourceMain from "../resources/ResourceMai";
import { TO_HTML_HCX_OPTIONS } from "./interfaces";
interface ADJUDICATION {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    /** system  http://terminology.hl7.org/CodeSystem/adjudication*/
    category: CODEABLE_CONCEPT;
    reason: CODEABLE_CONCEPT;
    amount?: MONEY;
    value?: number;
}
interface DETAIL {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    detailSequence: number;
    noteNumber: number[];
    adjudication: ADJUDICATION[];
    subDetail?: Omit<DETAIL, "subDetail">[];
}
interface TOTAL {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    /** system  http://terminology.hl7.org/CodeSystem/adjudication*/
    category: CODEABLE_CONCEPT;
    amount: MONEY;
}
interface ITEM {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    itemSequence: number;
    noteNumber: number[];
    adjudication: ADJUDICATION[];
    detail?: DETAIL[];
    formCode?: CODEABLE_CONCEPT;
}
interface PAYEMENT {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    type: CODEABLE_CONCEPT;
    adjustment?: MONEY;
    adjustmentReason?: CODEABLE_CONCEPT;
    date?: string;
    amount: MONEY;
    identifier: IDENTTIFIER;
}
interface ADD_ITEM {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    itemSequence: number[];
    detailSequence: number[];
    subdetailSequence: number[];
    provider: REFERENCE;
    productOrService: CODEABLE_CONCEPT;
    modifier: CODEABLE_CONCEPT[];
    programCode: CODEABLE_CONCEPT[];
    quantity?: SAMPLE_QUANTITY;
    unitPrice?: MONEY;
    factor?: number;
    net?: MONEY;
    bodySite?: CODEABLE_CONCEPT;
    subSite: CODEABLE_CONCEPT[];
    noteNumber: number[];
    adjudication: ADJUDICATION[];
    serviced?: {
        servicedDate?: string;
        servicedPeriod?: PERIOD;
    };
    location?: {
        locationCodeableConcept: CODEABLE_CONCEPT;
        locationAddress: ADDRESS;
        locationReference: REFERENCE;
    };
}
interface INSURANCE {
    sequence: number;
    focal: boolean;
    coverage: REFERENCE;
    businessArrangement?: string;
    claimResponse?: REFERENCE;
}
interface ERROR {
    itemSequence?: number;
    detailSequence?: number;
    subDetailSequence?: number;
    code: CODEABLE_CONCEPT;
}
interface PATIENT_MULTIRESOURCE extends MULTI_RESOURCE {
    "resource": "Patient";
}
interface INSURER_MULTIRESOURCE extends MULTI_RESOURCE {
    "resource": "Organization";
}
interface REQUESTER_MULTIRESOURCE extends MULTI_RESOURCE {
    "resource": "Practitioner" | "PractitionerRole" | "Organization";
}
interface REQUEST_MULTIRESOURCE extends MULTI_RESOURCE {
    "resource": "Claim";
}
interface COMMUNICATION_REQUEST_MULTIRESOURCE extends MULTI_RESOURCE {
    "resource": "CommunicationRequest";
}
interface CLAIM_RESPONSE {
    id?: string;
    text: string;
    resourceType: "ClaimResponse";
    identifier: IDENTTIFIER[];
    containedInlineResource?: any[];
    language?: string;
    type: CODEABLE_CONCEPT;
    use: "claim" | "preauthorization" | "predetermination";
    created: string;
    outcome: "queued" | "complete" | "error" | "partial";
    hcx?: "nhcx" | "swastha";
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    patient: PATIENT_MULTIRESOURCE;
    insurer: INSURER_MULTIRESOURCE;
    requestor?: REQUESTER_MULTIRESOURCE;
    request?: REQUEST_MULTIRESOURCE;
    status: "active" | "cancelled" | "draft" | "entered-in-error";
    subType?: CODEABLE_CONCEPT;
    disposition?: string;
    preAuthRef?: string;
    preAuthPeriod: PERIOD;
    payeeType?: CODEABLE_CONCEPT;
    item?: ITEM[];
    detail?: DETAIL[];
    adjudication?: ADJUDICATION[];
    total: TOTAL[];
    payment?: PAYEMENT;
    fundsReserve?: CODEABLE_CONCEPT;
    formCode?: CODEABLE_CONCEPT;
    form: ATTACHMENT;
    addItem: ADD_ITEM[];
    communicationRequest?: COMMUNICATION_REQUEST_MULTIRESOURCE[];
    insurance?: INSURANCE[];
    error: ERROR[];
}
interface TO_HTML_HCX_OPTIONS_CLAIM_RESPONSE extends Omit<TO_HTML_HCX_OPTIONS, "body"> {
    body: any;
}
export declare class ClaimResponse extends ResourceMain implements ResourceMaster {
    getFHIR(options: CLAIM_RESPONSE): {
        resourceType: string;
        id: string | undefined;
        contained: any[] | undefined;
        modifierExtension: EXTENSION[] | undefined;
        extension: EXTENSION[] | undefined;
        meta: {
            versionId: string;
            lastUpdated: string;
            source: string;
        };
        language: string | undefined;
        text: {
            status: string;
            div: string;
        };
        identifier: IDENTTIFIER[];
        disposition: string | undefined;
        preAuthRef: string | undefined;
        preAuthPeriod: PERIOD;
        status: "cancelled" | "entered-in-error" | "active" | "draft";
        type: CODEABLE_CONCEPT;
        subType: CODEABLE_CONCEPT | undefined;
        use: "claim" | "preauthorization" | "predetermination";
        patient: {
            reference: string;
            type: string | undefined;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
        };
        created: string;
        insurer: {
            reference: string;
            type: string | undefined;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
        };
        requestor: {
            reference: string;
            type: string | undefined;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
        } | undefined;
        request: REQUEST_MULTIRESOURCE | undefined;
        outcome: "partial" | "queued" | "complete" | "error";
        payeeType: CODEABLE_CONCEPT | undefined;
        item: ITEM[] | undefined;
        detail: DETAIL[] | undefined;
        total: TOTAL[];
        payment: PAYEMENT | undefined;
        fundsReserve: CODEABLE_CONCEPT | undefined;
        formCode: CODEABLE_CONCEPT | undefined;
        form: ATTACHMENT;
        addItem: ADD_ITEM[];
        communicationRequest: {
            reference: string;
            type: string | undefined;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
        }[] | undefined;
        insurance: INSURANCE[] | undefined;
        error: ERROR[];
    };
    convertFhirToObject(options: any): CLAIM_RESPONSE;
    toHtml(options: TO_HTML_HCX_OPTIONS_CLAIM_RESPONSE): Promise<string>;
    statusArray?: Function | undefined;
}
export {};
//# sourceMappingURL=ClaimResponse.d.ts.map