import { CODEABLE_CONCEPT, EXTENSION, IDENTTIFIER, MULTI_RESOURCE, PERIOD } from "../config";
import { ResourceMaster } from "../Interfaces";
import ResourceMain from "./ResourceMai";
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;
} | {
    diagnosisReference: {
        reference: string;
    };
};
interface ITEM {
    category?: CODEABLE_CONCEPT;
    productOrService: CODEABLE_CONCEPT;
    modifier?: CODEABLE_CONCEPT[];
    provider: ITEM_PROVIDER;
    facility: ITEM_FACILITY;
    diagnosis: DIAGNOSIS[];
}
export interface COVERAGE_ELIGIBILITY_REQUEST {
    id?: string;
    status: CoverageEligibilityRequestStatus;
    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;
    /**
     * ward
     */
    locationId: string;
    insurance: INSURANCE[];
    item: ITEM[];
    detail?: {
        reference: string;
    };
}
export declare class CoverageEligibilityRequest extends ResourceMain implements ResourceMaster {
    getFHIR(options: COVERAGE_ELIGIBILITY_REQUEST): any;
    convertFhirToObject(options: any): COVERAGE_ELIGIBILITY_REQUEST;
    statusArray: () => CoverageEligibilityRequestStatus[];
    Purpose: () => CoverageEligibilityRequestPurpoe[];
}
export {};
//# sourceMappingURL=CoverageEligibilityRequest.d.ts.map