import { CODEABLE_CONCEPT, MULTI_RESOURCE } from "../config";
import { ResourceMaster } from "../Interfaces";
import ResourceMain from "./ResourceMai";
declare const status: readonly ["draft", "active", "suspended", "cancelled", "completed", "entered-in-error", "unknown"];
declare const intent: readonly ["proposal", "plan", "order"];
declare type Status = typeof status[number];
declare type Intent = typeof intent[number];
interface SUBJECT extends MULTI_RESOURCE {
    resource: "Patient" | "Group";
    display: string;
}
interface AGENT extends MULTI_RESOURCE {
    resource: "Practitioner" | "Organization" | "Patient" | "RelatedPerson" | "Device";
    display: string;
}
interface ON_BE_HALF_OF extends MULTI_RESOURCE {
    resource: "Organization";
    display: string;
}
interface REQUESTER {
    agent: AGENT;
    onBehalfOf?: ON_BE_HALF_OF;
}
interface RECIPENT extends MULTI_RESOURCE {
    resource: "Practitioner" | "Organization" | "HealthcareService";
    display: string;
}
export interface REFERRAL_REQUEST {
    id?: string;
    text: string;
    status: Status;
    intent: Intent;
    subject: SUBJECT;
    /**
     * DateTime in ISO format
     */
    authoredOn: string;
    requester: REQUESTER;
    specialty: CODEABLE_CONCEPT;
    recipient: RECIPENT[];
    description: string;
}
export declare class ReferralRequest extends ResourceMain implements ResourceMaster {
    getFHIR(options: REFERRAL_REQUEST): {
        resourceType: string;
        id: string | undefined;
        meta: {
            profile: string[];
        };
        text: {
            status: string;
            div: string;
        };
        status: "active" | "entered-in-error" | "cancelled" | "unknown" | "completed" | "draft" | "suspended";
        intent: "proposal" | "plan" | "order";
        subject: {
            reference: string;
            display: string;
        };
        requester: {
            agent: {
                reference: string;
                display: string;
            };
            onBehalfOf: {
                reference: string;
                display: string | undefined;
            };
        };
        specialty: CODEABLE_CONCEPT;
        recipient: {
            reference: string;
            display: string;
        }[];
        description: string;
    };
    convertFhirToObject(options: any): void;
    statusArray?: Function | undefined;
}
export {};
//# sourceMappingURL=ReferralRequest.d.ts.map