import { CODEABLE_CONCEPT, IDENTTIFIER, MULTI_RESOURCE } from "../config";
import { ResourceMaster } from "../Interfaces";
import ResourceMain from "./ResourceMai";
interface SUBJECT extends MULTI_RESOURCE {
    resource: "Patient" | "Group" | "Organization";
}
declare const DURRATION: readonly [{
    readonly code: "s";
    readonly display: "seconds";
    readonly system: "http://unitsofmeasure.org";
}, {
    readonly code: "min";
    readonly display: "minutes";
    readonly system: "http://unitsofmeasure.org";
}, {
    readonly code: "h";
    readonly display: "hours";
    readonly system: "http://unitsofmeasure.org";
}, {
    readonly code: "d";
    readonly display: "days";
    readonly system: "http://unitsofmeasure.org";
}, {
    readonly code: "wk";
    readonly display: "weeks";
    readonly system: "http://unitsofmeasure.org";
}, {
    readonly code: "mo";
    readonly display: "months";
    readonly system: "http://unitsofmeasure.org";
}, {
    readonly code: "a";
    readonly display: "years";
    readonly system: "http://unitsofmeasure.org";
}];
declare type Duration = (typeof DURRATION)[number] & {
    value: number;
};
interface TARGET {
    measure: CODEABLE_CONCEPT;
    dueDate?: string;
    dueDuration?: Duration;
}
interface EXPTRESSED_BY extends MULTI_RESOURCE {
    resource: "Patient" | "Practitioner" | "PractitionerRole" | "RelatedPerson";
}
interface Addresses extends MULTI_RESOURCE {
    resource: "Condition" | "Observation" | "MedicationStatement" | "NutritionOrder" | "ServiceRequest" | "RiskAssessment";
}
interface outcomeReference extends MULTI_RESOURCE {
    resource: "Observation";
}
export interface GOAL {
    id?: string;
    text?: string;
    identifier?: IDENTTIFIER[];
    lifecycleStatus: "proposed" | "planned" | "accepted" | "active" | "on-hold" | "completed" | "cancelled" | "entered-in-error" | "rejected";
    achievementStatus?: CODEABLE_CONCEPT;
    category?: CODEABLE_CONCEPT[];
    priority?: CODEABLE_CONCEPT;
    description: CODEABLE_CONCEPT;
    subject: SUBJECT;
    startDate: string;
    statusDate?: string;
    statusReason?: string;
    expressedBy?: EXPTRESSED_BY;
    addresses?: Addresses[];
    target?: TARGET[];
    outcomeReference?: outcomeReference[];
    note?: {
        "text": string;
    }[];
}
export declare class Goal extends ResourceMain implements ResourceMaster {
    getFHIR(options: GOAL): any;
    convertFhirToObject(options: any): GOAL;
    toHtml(option: any): Promise<string>;
    statusArray?: Function | undefined;
}
export {};
//# sourceMappingURL=Goal.d.ts.map