import { CODEABLE_CONCEPT, IDENTTIFIER, MULTI_RESOURCE } from "../config";
import { ResourceMaster } from "../Interfaces";
import ResourceMain from "../resources/ResourceMai";
import { PAYLOAD } from "./Communication";
import { TO_HTML_HCX_OPTIONS } from "./interfaces";
interface TO_HTML_HCX_OPTIONS_COMMUNICATION_REQUEST extends Omit<TO_HTML_HCX_OPTIONS, "body"> {
    body: any;
}
interface SUBJECT extends MULTI_RESOURCE {
    resource: "Patient" | "Group";
}
interface REQUESTER extends MULTI_RESOURCE {
    resource: "RelatedPerson" | "Device" | "Practitioner" | "PractitionerRole" | "Organization" | "Patient";
}
interface RECIPIENT extends MULTI_RESOURCE {
    resource: "Device" | "RelatedPerson" | "Group" | "CareTeam" | "HealthcareService" | "Organization" | "Patient" | "Practitioner" | "PractitionerRole";
}
interface SENDER extends MULTI_RESOURCE {
    resource: "Device" | "Organization" | "Patient" | "Practitioner" | "PractitionerRole" | "RelatedPerson" | "HealthcareService";
}
interface REASON_REFERENCE extends MULTI_RESOURCE {
    resource: "Condition" | "Observation" | "DiagnosticReport" | "DocumentReference";
}
interface REPLACES extends MULTI_RESOURCE {
    resource: "CommunicationRequest";
}
export interface COMMUNICATION_REQUEST {
    id?: string;
    hcx?: "nhcx" | "swasth";
    resourceType: "CommunicationRequest";
    text: string;
    identifiers?: IDENTTIFIER[];
    basedOn?: MULTI_RESOURCE[];
    replaces?: REPLACES[];
    status: "draft" | "active" | "on-hold" | "revoked" | "completed" | "entered-in-error" | "unknown";
    /** ststem "http://terminology.hl7.org/CodeSystem/communication-category" */
    category: CODEABLE_CONCEPT[];
    priority: "routine" | "urgent" | "asap" | "stat";
    subject?: SUBJECT;
    about?: MULTI_RESOURCE;
    encounterId?: string;
    doNotPerform?: boolean;
    /** system http://terminology.hl7.org/CodeSystem/v3-ActReason */
    reasonCode?: CODEABLE_CONCEPT[];
    reasonReference: REASON_REFERENCE[];
    statusReason: CODEABLE_CONCEPT;
    authoredOn: string;
    requester: REQUESTER;
    payload?: PAYLOAD[];
    recipient: RECIPIENT[];
    sender: SENDER;
    note?: {
        author?: {
            authorReference: {
                reference: `${"Practitioner" | "Patient" | "RelatedPerson" | "Organization)"}/${string}`;
            };
            authorString: string;
        }[];
        time?: string;
        text: string;
    };
}
export declare class CommunicationRequest extends ResourceMain implements ResourceMaster {
    getFHIR(options: COMMUNICATION_REQUEST): {
        resourceType: string;
        id: string | undefined;
        status: "entered-in-error" | "unknown" | "active" | "completed" | "draft" | "on-hold" | "revoked";
        meta: {
            versionId: string;
            lastUpdated: string;
            profile: string[];
        };
        text: {
            status: string;
            div: string;
        };
        identifier: IDENTTIFIER[] | undefined;
        replaces: {
            reference: string;
            type: string | undefined;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
        }[] | undefined;
        basedOn: {
            reference: string;
            type: string | undefined;
            identifier: IDENTTIFIER | undefined;
            display: string | undefined;
        }[] | undefined;
        category: CODEABLE_CONCEPT[];
        priority: "stat" | "routine" | "urgent" | "asap";
        subject: {
            reference: string | undefined;
        };
        doNotPerform: boolean | undefined;
        statusReason: CODEABLE_CONCEPT;
        encounter: {
            reference: string;
        };
        payload: PAYLOAD[] | undefined;
        authoredOn: string;
        requester: {
            reference: string;
        };
        recipient: {
            reference: string;
        }[];
        sender: {
            reference: string;
        };
        reasonCode: CODEABLE_CONCEPT[] | undefined;
        reasonReference: {
            reference: string;
        }[];
        note: {
            author?: {
                authorReference: {
                    reference: `Patient/${string}` | `Practitioner/${string}` | `RelatedPerson/${string}` | `Organization)/${string}`;
                };
                authorString: string;
            }[] | undefined;
            time?: string | undefined;
            text: string;
        } | undefined;
    };
    convertFhirToObject(options: any): COMMUNICATION_REQUEST;
    toHtml(option: TO_HTML_HCX_OPTIONS_COMMUNICATION_REQUEST): Promise<string>;
    statusArray?: Function | undefined;
}
export {};
//# sourceMappingURL=CommunicationRequest.d.ts.map