import * as t from 'io-ts';
import { IExtension } from './RTTI_Extension';
import { IElement } from './RTTI_Element';
import { ITiming } from './RTTI_Timing';
import { IReference } from './RTTI_Reference';
import { IDataRequirement } from './RTTI_DataRequirement';
import { IExpression } from './RTTI_Expression';
export declare enum TriggerDefinitionTypeKind {
    _namedEvent = "named-event",
    _periodic = "periodic",
    _dataChanged = "data-changed",
    _dataAdded = "data-added",
    _dataModified = "data-modified",
    _dataRemoved = "data-removed",
    _dataAccessed = "data-accessed",
    _dataAccessEnded = "data-access-ended"
}
export interface ITriggerDefinition {
    id?: string;
    extension?: IExtension[];
    type?: TriggerDefinitionTypeKind;
    _type?: IElement;
    name?: string;
    _name?: IElement;
    timingTiming?: ITiming;
    timingReference?: IReference;
    timingDate?: string;
    _timingDate?: IElement;
    timingDateTime?: string;
    _timingDateTime?: IElement;
    data?: IDataRequirement[];
    condition?: IExpression;
}
export declare const RTTI_TriggerDefinition: t.Type<ITriggerDefinition>;
