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 { ICoding } from './RTTI_Coding';
import { IPeriod } from './RTTI_Period';
import { ICodeableConcept } from './RTTI_CodeableConcept';
import { IAuditEvent_Agent } from './RTTI_AuditEvent_Agent';
import { IAuditEvent_Source } from './RTTI_AuditEvent_Source';
import { IAuditEvent_Entity } from './RTTI_AuditEvent_Entity';
export declare enum AuditEventActionKind {
    _c = "C",
    _r = "R",
    _u = "U",
    _d = "D",
    _e = "E"
}
export declare enum AuditEventOutcomeKind {
    _success = "0",
    _minorFailure = "4",
    _seriousFailure = "8",
    _majorFailure = "12"
}
import { IDomainResource } from './IDomainResource';
export interface IAuditEvent extends IDomainResource {
    resourceType: 'AuditEvent';
    type: ICoding;
    agent: IAuditEvent_Agent[];
    source: IAuditEvent_Source;
    id?: string;
    meta?: IMeta;
    implicitRules?: string;
    _implicitRules?: IElement;
    language?: string;
    _language?: IElement;
    text?: INarrative;
    contained?: IResourceList[];
    extension?: IExtension[];
    modifierExtension?: IExtension[];
    subtype?: ICoding[];
    action?: AuditEventActionKind;
    _action?: IElement;
    period?: IPeriod;
    recorded: string;
    _recorded?: IElement;
    outcome?: AuditEventOutcomeKind;
    _outcome?: IElement;
    outcomeDesc?: string;
    _outcomeDesc?: IElement;
    purposeOfEvent?: ICodeableConcept[];
    entity?: IAuditEvent_Entity[];
}
export declare const RTTI_AuditEvent: t.Type<IAuditEvent>;
