import { CODEABLE_CONCEPT, MULTI_RESOURCE } from "../config";
import { ResourceMaster } from "../Interfaces";
import ResourceMain from "./ResourceMai";
export declare const careplanActivityDetailStatusArray: readonly ["not-started", "scheduled", "in-progress", "on-hold", "completed", "cancelled", "stopped", "unknown", "entered-in-error"];
type CareplanActivityDetailStatus = typeof careplanActivityDetailStatusArray[number];
declare const carePlanStatusArray: readonly ["draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown"];
export type CarePlanStatus = (typeof carePlanStatusArray)[number];
export declare const carePlanIntentArray: readonly ["proposal", "plan", "order", "option"];
export type CarePlanIntent = (typeof carePlanIntentArray)[number];
interface ACTIVITY_REFERENCE extends MULTI_RESOURCE {
    resource: "Appointment" | "CommunicationRequest" | "DeviceRequest" | "MedicationRequest" | "NutritionOrder" | "Task" | "ServiceRequest" | "VisionPrescription" | "RequestGroup";
}
interface GOAL extends MULTI_RESOURCE {
    resource: "Goal";
}
export interface ACTIVITY {
    outcomeCodeableConcept?: CODEABLE_CONCEPT[];
    outcomeReference?: MULTI_RESOURCE[];
    reference?: ACTIVITY_REFERENCE;
    detail?: {
        kind?: "Appointment" | "CommunicationRequest" | "DeviceRequest" | "MedicationRequest" | "NutritionOrder" | "Task" | "ServiceRequest" | "VisionPrescription";
        code: CODEABLE_CONCEPT;
        status: CareplanActivityDetailStatus;
    };
}
interface AUTHOR extends MULTI_RESOURCE {
    "resource": "Device" | "RelatedPerson" | "CareTeam" | "Patient" | "Practitioner" | "PractitionerRole" | "Organization";
}
interface CONTRIBUTOR extends MULTI_RESOURCE {
    "resource": "Device" | "RelatedPerson" | "CareTeam" | "Patient" | "Practitioner" | "PractitionerRole" | "Organization";
}
interface ADDRESSES extends MULTI_RESOURCE {
    "resource": "Condition";
}
export interface CARE_PLAN {
    id?: string;
    basedOnCarePlanId?: string[];
    lastUpdated?: string;
    replacesCarePlanId?: string[];
    partOfCarePlanId?: string[];
    status: CarePlanStatus;
    inetent: CarePlanIntent;
    text: string;
    category: CODEABLE_CONCEPT[];
    title: string;
    description?: string;
    patientId: string;
    goal?: GOAL[];
    activity?: ACTIVITY[];
    encounterId?: string;
    author?: AUTHOR;
    contributor?: CONTRIBUTOR[];
    addresses?: ADDRESSES[];
}
export declare class CarePlan extends ResourceMain implements ResourceMaster {
    toHtml(): Promise<string>;
    getFHIR(options: CARE_PLAN): {
        resourceType: string;
        id: string | undefined;
        meta: {
            profile: string[];
            lastUpdated: string | undefined;
        };
        text: {
            status: string;
            div: string;
        };
        author: {
            reference: string;
        } | undefined;
        contributor: {
            reference: string;
        }[] | undefined;
        addresses: {
            reference: string;
        }[] | undefined;
        encounter: "" | {
            reference: string;
        } | undefined;
        basedOn: {
            reference: string;
        }[] | undefined;
        replaces: {
            reference: string;
        }[] | undefined;
        partOf: {
            reference: string;
        }[] | undefined;
        status: "entered-in-error" | "unknown" | "active" | "completed" | "draft" | "on-hold" | "revoked";
        intent: "proposal" | "plan" | "order" | "option";
        category: CODEABLE_CONCEPT[];
        title: string;
        description: string | undefined;
        goal: {
            reference: string;
        }[] | undefined;
        subject: {
            reference: string;
        };
        activity: ACTIVITY[] | undefined;
    };
    convertFhirToObject(options: any): CARE_PLAN;
    statusArray: () => CarePlanStatus[];
    /***
     * This method retuns the CARE_PLAN["activity"][number]["detail"]["status"][]
     *  */
    careplanActivityDetailStatusArray: () => typeof careplanActivityDetailStatusArray;
}
export {};
//# sourceMappingURL=CarePlan.d.ts.map