import * as t from 'io-ts';
import { IMeta } from './RTTI_Meta';
import { IElement } from './RTTI_Element';
import { INarrative } from './RTTI_Narrative';
import { IResourceList } from '../Union/RTTI_ResourceList';
import { IExtension } from './RTTI_Extension';
import { IIdentifier } from './RTTI_Identifier';
import { IReference } from './RTTI_Reference';
import { ICodeableConcept } from './RTTI_CodeableConcept';
import { IPeriod } from './RTTI_Period';
import { IAnnotation } from './RTTI_Annotation';
import { ITask_Restriction } from './RTTI_Task_Restriction';
import { ITask_Input } from './RTTI_Task_Input';
import { ITask_Output } from './RTTI_Task_Output';
export declare enum TaskStatusKind {
    _draft = "draft",
    _requested = "requested",
    _received = "received",
    _accepted = "accepted",
    _rejected = "rejected",
    _ready = "ready",
    _cancelled = "cancelled",
    _inProgress = "in-progress",
    _onHold = "on-hold",
    _failed = "failed",
    _completed = "completed",
    _enteredInError = "entered-in-error"
}
export declare enum TaskIntentKind {
    _unknown = "unknown",
    _proposal = "proposal",
    _plan = "plan",
    _order = "order",
    _originalOrder = "original-order",
    _reflexOrder = "reflex-order",
    _fillerOrder = "filler-order",
    _instanceOrder = "instance-order",
    _option = "option"
}
import { IDomainResource } from './IDomainResource';
export interface ITask extends IDomainResource {
    resourceType: 'Task';
    id?: string;
    meta?: IMeta;
    implicitRules?: string;
    _implicitRules?: IElement;
    language?: string;
    _language?: IElement;
    text?: INarrative;
    contained?: IResourceList[];
    extension?: IExtension[];
    modifierExtension?: IExtension[];
    identifier?: IIdentifier[];
    instantiatesCanonical?: string;
    instantiatesUri?: string;
    _instantiatesUri?: IElement;
    basedOn?: IReference[];
    groupIdentifier?: IIdentifier;
    partOf?: IReference[];
    status?: TaskStatusKind;
    _status?: IElement;
    statusReason?: ICodeableConcept;
    businessStatus?: ICodeableConcept;
    intent?: TaskIntentKind;
    _intent?: IElement;
    priority?: string;
    _priority?: IElement;
    code?: ICodeableConcept;
    description?: string;
    _description?: IElement;
    focus?: IReference;
    for?: IReference;
    encounter?: IReference;
    executionPeriod?: IPeriod;
    authoredOn?: string;
    _authoredOn?: IElement;
    lastModified?: string;
    _lastModified?: IElement;
    requester?: IReference;
    performerType?: ICodeableConcept[];
    owner?: IReference;
    location?: IReference;
    reasonCode?: ICodeableConcept;
    reasonReference?: IReference;
    insurance?: IReference[];
    note?: IAnnotation[];
    relevantHistory?: IReference[];
    restriction?: ITask_Restriction;
    input?: ITask_Input[];
    output?: ITask_Output[];
}
export declare const RTTI_Task: t.Type<ITask>;
