import { CODEABLE_CONCEPT, CodeDisplay, EXTENSION } from "../config";
import { ResourceMaster } from "../Interfaces";
import ResourceMain from "./ResourceMai";
declare const ServiceRequestStatusArray: readonly ["draft", "active", "on-hold", "revoked", "completed", "entered-in-error", "unknown"];
export declare type ServiceRequestStatus = (typeof ServiceRequestStatusArray)[number];
declare const ServiceRequestIntentArray: readonly ["proposal", "plan", "directive", "order", "original-order", "reflex-order", "filler-order", "instance-order", "option"];
export declare type ServiceRequestIntent = (typeof ServiceRequestIntentArray)[number];
interface requester {
    resource: "Practitioner" | "Patient" | "Organization" | "PractitionerRole";
    id: string;
    display: string;
}
interface performer extends requester {
}
export declare const serviceRequestCategoryArray: readonly [{
    readonly code: "108252007";
    readonly display: "Laboratory procedure";
}, {
    readonly code: "363679005";
    readonly display: "Imaging";
}, {
    readonly code: "409063005";
    readonly display: "Counselling";
}, {
    readonly code: "409073007";
    readonly display: "Education";
}, {
    readonly code: "387713003";
    readonly display: "Surgical procedure";
}];
export declare type ServceRequestCategory = (typeof serviceRequestCategoryArray)[number];
declare const serviceRequestPriority: readonly ["routine", "urgent", "asap", "stat"];
export declare type ServiceRequestPriority = (typeof serviceRequestPriority)[number];
interface ANNOTATION {
    text: string;
}
export interface SERVICE_REQUEST {
    id?: string;
    status: ServiceRequestStatus;
    intent: ServiceRequestIntent;
    services?: CodeDisplay[];
    patientId: string;
    patientName: string;
    requester: requester;
    performer?: performer[];
    date: string;
    priority?: ServiceRequestPriority;
    category?: ServceRequestCategory;
    encounterId?: string;
    note?: ANNOTATION[];
    extension?: EXTENSION[];
    specimanIds?: string[];
    reasonCode?: CODEABLE_CONCEPT[];
}
export declare class ServiceRequest extends ResourceMain implements ResourceMaster {
    toHtml(): Promise<string>;
    getFHIR(options: SERVICE_REQUEST): any;
    convertFhirToObject(options: any): SERVICE_REQUEST;
    statusArray: () => ServiceRequestStatus[];
    itentArray: () => ServiceRequestIntent[];
    category: () => ServceRequestCategory[];
    priority: () => ServiceRequestPriority[];
}
export {};
//# sourceMappingURL=ServiceRequest.d.ts.map