import { ResourceMaster } from "../Interfaces";
import { CODEABLE_CONCEPT, IDENTTIFIER, PERIOD } from "../config";
import { SAMPLE_QUANTITY, SUPPORTING_INFO } from "../resources/Observation";
import ResourceMain from "../resources/ResourceMai";
import { TO_HTML_HCX_OPTIONS } from "./interfaces";
interface PAYEE_PARTY {
    id: string;
    identifier: IDENTTIFIER;
}
export interface CLAIM {
    id?: string;
    text: string;
    resourceType: "Claim";
    identifier: IDENTTIFIER[];
    status: "active" | "cancelled" | "draft" | "entered-in-error";
    patientGcpId: string;
    providerId: string;
    supportingInfo?: SUPPORTING_INFO[];
    payee?: {
        /**
         * Code from https://hl7.org/fhir/R4/codesystem-payeetype.html
         */
        type: CODEABLE_CONCEPT;
        party?: PAYEE_PARTY;
    };
    payorId?: string;
    payorParticipantCode?: string;
    payorName: string;
    billablePeriod: PERIOD;
    priority: CODEABLE_CONCEPT;
    total: {
        value: number;
        currency: "INR" | "USD";
    };
    careteam: {
        sequence: number;
        provider: {
            reference: `Organization/${string}`;
        };
    }[];
    item: {
        id?: string;
        sequence: number;
        category?: CODEABLE_CONCEPT;
        productOrService: {
            coding: {
                system: string;
                code: string;
                display: string;
            }[];
        };
        unitPrice: {
            value: number;
            currency: "INR" | "USD";
        };
        quantity: SAMPLE_QUANTITY;
        encounter: {
            reference: `Encounter/${string}`;
        }[];
    }[];
    diagnosis: {
        sequence: number;
        diagnosisCodeableConcept: CODEABLE_CONCEPT;
        type: CODEABLE_CONCEPT[];
    }[];
    insurance: {
        sequence: number;
        focal: boolean;
        identifier?: IDENTTIFIER;
        coverage: {
            reference: `Coverage/${string}`;
        };
    }[];
    type: CODEABLE_CONCEPT;
    createdDate: string;
    use: "claim" | "preauthorization" | "predetermination";
    hcx?: "nhcx" | "swastha";
}
interface TO_HTML_HCX_OPTIONS_CLAIM extends Omit<TO_HTML_HCX_OPTIONS, "body"> {
    body: any;
}
export declare class Claim extends ResourceMain implements ResourceMaster {
    toHtml(options: TO_HTML_HCX_OPTIONS_CLAIM): Promise<string>;
    getFHIR(options: CLAIM): {
        resourceType: string;
        id: string | undefined;
        meta: {
            lastUpdated: string;
            profile: string[];
        };
        identifier: IDENTTIFIER[];
        status: "cancelled" | "entered-in-error" | "active" | "draft";
        type: CODEABLE_CONCEPT;
        patient: {
            reference: string;
        };
        created: string;
        insurer: {
            reference: string | undefined;
            identifier: "" | {
                system: string;
                value: string;
            } | undefined;
            display: string;
        };
        provider: {
            reference: string;
        };
        priority: CODEABLE_CONCEPT;
        careTeam: {
            sequence: number;
            provider: {
                reference: `Organization/${string}`;
            };
        }[];
        diagnosis: {
            sequence: number;
            diagnosisCodeableConcept: CODEABLE_CONCEPT;
            type: CODEABLE_CONCEPT[];
        }[];
        insurance: {
            sequence: number;
            focal: boolean;
            identifier?: IDENTTIFIER | undefined;
            coverage: {
                reference: `Coverage/${string}`;
            };
        }[];
        item: {
            id?: string | undefined;
            sequence: number;
            category?: CODEABLE_CONCEPT | undefined;
            productOrService: {
                coding: {
                    system: string;
                    code: string;
                    display: string;
                }[];
            };
            unitPrice: {
                value: number;
                currency: "INR" | "USD";
            };
            quantity: SAMPLE_QUANTITY;
            encounter: {
                reference: `Encounter/${string}`;
            }[];
        }[];
        total: {
            value: number;
            currency: "INR" | "USD";
        };
        use: "claim" | "preauthorization" | "predetermination";
        supportingInfo: SUPPORTING_INFO[] | undefined;
        payee: {
            type: CODEABLE_CONCEPT;
            party: PAYEE_PARTY | undefined;
        } | undefined;
        billablePeriod: PERIOD;
        text: {
            status: string;
            div: string;
        };
    };
    convertFhirToObject(options: any): CLAIM;
    statusArray?: Function | undefined;
}
export {};
//# sourceMappingURL=Claim.d.ts.map