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 { ITiming } from './RTTI_Timing';
import { IQuantity } from './RTTI_Quantity';
import { IRange } from './RTTI_Range';
import { IRatio } from './RTTI_Ratio';
import { ISampledData } from './RTTI_SampledData';
import { IAnnotation } from './RTTI_Annotation';
import { IObservation_ReferenceRange } from './RTTI_Observation_ReferenceRange';
import { IObservation_Component } from './RTTI_Observation_Component';
export declare enum ObservationStatusKind {
    _registered = "registered",
    _preliminary = "preliminary",
    _final = "final",
    _amended = "amended",
    _corrected = "corrected",
    _cancelled = "cancelled",
    _enteredInError = "entered-in-error",
    _unknown = "unknown"
}
import { IDomainResource } from './IDomainResource';
export interface IObservation extends IDomainResource {
    resourceType: 'Observation';
    code: ICodeableConcept;
    id?: string;
    meta?: IMeta;
    implicitRules?: string;
    _implicitRules?: IElement;
    language?: string;
    _language?: IElement;
    text?: INarrative;
    contained?: IResourceList[];
    extension?: IExtension[];
    modifierExtension?: IExtension[];
    identifier?: IIdentifier[];
    basedOn?: IReference[];
    partOf?: IReference[];
    status?: ObservationStatusKind;
    _status?: IElement;
    category?: ICodeableConcept[];
    subject?: IReference;
    focus?: IReference[];
    encounter?: IReference;
    effectiveDateTime?: string;
    _effectiveDateTime?: IElement;
    effectivePeriod?: IPeriod;
    effectiveTiming?: ITiming;
    effectiveInstant?: string;
    _effectiveInstant?: IElement;
    issued?: string;
    _issued?: IElement;
    performer?: IReference[];
    valueQuantity?: IQuantity;
    valueCodeableConcept?: ICodeableConcept;
    valueString?: string;
    _valueString?: IElement;
    valueBoolean?: boolean;
    _valueBoolean?: IElement;
    valueInteger?: number;
    _valueInteger?: IElement;
    valueRange?: IRange;
    valueRatio?: IRatio;
    valueSampledData?: ISampledData;
    valueTime?: string;
    _valueTime?: IElement;
    valueDateTime?: string;
    _valueDateTime?: IElement;
    valuePeriod?: IPeriod;
    dataAbsentReason?: ICodeableConcept;
    interpretation?: ICodeableConcept[];
    note?: IAnnotation[];
    bodySite?: ICodeableConcept;
    method?: ICodeableConcept;
    specimen?: IReference;
    device?: IReference;
    referenceRange?: IObservation_ReferenceRange[];
    hasMember?: IReference[];
    derivedFrom?: IReference[];
    component?: IObservation_Component[];
}
export declare const RTTI_Observation: t.Type<IObservation>;
