import { CODEABLE_CONCEPT, EXTENSION, IDENTTIFIER, MULTI_RESOURCE, PERIOD } from "../config";
import { ResourceMaster } from "../Interfaces";
import ResourceMain from "../resources/ResourceMai";
import { TO_HTML_HCX_OPTIONS } from "./interfaces";
declare const CoverageEligibilityRequestStatus: readonly ["active", "cancelled", "draft", "entered-in-error"];
export interface INSURANCE {
    id?: string;
    focal?: boolean;
    coverage: {
        reference: string;
    };
    businessArrangement?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
}
interface SUPPORTING_INFO {
    id?: string;
    extension?: EXTENSION[];
    modifierExtension?: EXTENSION[];
    sequence: number;
    /**
     * Any resource
     */
    information: {
        reference: string;
    };
    appliesToAll?: boolean;
}
declare type CoverageEligibilityRequestStatus = (typeof CoverageEligibilityRequestStatus)[number];
declare const CoverageEligibilityRequestPurpose: readonly ["auth-requirements", "benefits", "discovery", "validation"];
declare type CoverageEligibilityRequestPurpoe = (typeof CoverageEligibilityRequestPurpose)[number];
interface ENTERER extends MULTI_RESOURCE {
    resource: "Practitioner" | "PractitionerRole";
}
interface PROVIDER extends MULTI_RESOURCE {
    resource: "Practitioner" | "PractitionerRole" | "Organization";
}
interface ITEM_PROVIDER extends MULTI_RESOURCE {
    resource: "Practitioner" | "PractitionerRole";
}
interface ITEM_FACILITY extends MULTI_RESOURCE {
    resource: "Location" | "Organization";
}
declare type DIAGNOSIS = {
    diagnosisCodeableConcept: CODEABLE_CONCEPT;
};
interface ITEM {
    category?: CODEABLE_CONCEPT;
    productOrService: CODEABLE_CONCEPT;
    modifier?: CODEABLE_CONCEPT[];
    provider?: ITEM_PROVIDER;
    facility?: ITEM_FACILITY;
    diagnosis: DIAGNOSIS[];
}
export declare type COVERAGE_ELIGIBILITY_REQUEST_PRIORITY = "stat" | "normal" | "deferred";
export interface COVERAGE_ELIGIBILITY_REQUEST {
    id?: string;
    status: CoverageEligibilityRequestStatus;
    resourceType: "CoverageEligibilityRequest";
    text: string;
    identifier: IDENTTIFIER[];
    priority: CODEABLE_CONCEPT;
    purpose: CoverageEligibilityRequestPurpoe[];
    patientId: string;
    createdDateTime: string;
    /**
     * Only Date 2023-08-15
     */
    servicedDate?: string;
    servicedPeriod?: PERIOD;
    supportingInfo?: SUPPORTING_INFO[];
    enterer: ENTERER;
    provider: PROVIDER;
    insurerOrganizationId?: string;
    insurerParticipantId?: string;
    insurerName?: string;
    /**
     * ward
     */
    locationId?: string;
    insurance: INSURANCE[];
    item?: ITEM[];
    detail?: {
        reference: string;
    };
    hcx?: "nhcx" | "swasth";
}
export interface TO_HTML_HCX_OPTIONS_COVERAGE_ELIGIBILITY_REQUEST extends Omit<TO_HTML_HCX_OPTIONS, "body"> {
    body: any;
}
export declare class CoverageEligibilityRequest extends ResourceMain implements ResourceMaster {
    toHtml(option: TO_HTML_HCX_OPTIONS_COVERAGE_ELIGIBILITY_REQUEST): Promise<string>;
    getFHIR(options: COVERAGE_ELIGIBILITY_REQUEST): any;
    convertFhirToObject(options: any): COVERAGE_ELIGIBILITY_REQUEST;
    statusArray: () => CoverageEligibilityRequestStatus[];
    Purpose: () => CoverageEligibilityRequestPurpoe[];
}
export {};
//# sourceMappingURL=CoverageEligibilityRequest.d.ts.map