import { InstrumentEvent } from './instrumentEvent';
import { ResultValueDictionary } from './resultValueDictionary';
/**
 * A generic event derived from the economic definition of an instrument. This should be considered purely  informational; any data provided by this event is not guaranteed to be processable by LUSID.
 */
export interface InformationalEvent {
    /**
     * What type of internal event does this represent; reset, exercise, amortisation etc.
     */
    readonly eventType: string;
    /**
     * What is the event status, is it a known (ie historic) or unknown (ie projected) event?
     */
    eventStatus: string;
    /**
     * In the case of a point event, the single date on which the event occurs. In the case of an event which is  spread over a window, e.g. a barrier or American option, the start of that window.
     */
    anchorDate: Date;
    /**
     * In the case of a point event this is identical to the anchor date. In the case of an event that is spread over a window,  this is the end of that window.
     */
    readonly eventWindowEnd?: Date;
    diagnostics?: ResultValueDictionary;
    /**
     * The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent
     */
    instrumentEventType: InformationalEvent.InstrumentEventTypeEnum;
}
export declare namespace InformationalEvent {
    type InstrumentEventTypeEnum = 'TransitionEvent' | 'InformationalEvent' | 'OpenEvent' | 'CloseEvent' | 'StockSplitEvent' | 'BondDefaultEvent' | 'CashDividendEvent' | 'AmortisationEvent' | 'CashFlowEvent' | 'ExerciseEvent' | 'ResetEvent' | 'TriggerEvent' | 'RawVendorEvent' | 'InformationalErrorEvent';
    const InstrumentEventTypeEnum: {
        TransitionEvent: InstrumentEvent.InstrumentEventTypeEnum;
        InformationalEvent: InstrumentEvent.InstrumentEventTypeEnum;
        OpenEvent: InstrumentEvent.InstrumentEventTypeEnum;
        CloseEvent: InstrumentEvent.InstrumentEventTypeEnum;
        StockSplitEvent: InstrumentEvent.InstrumentEventTypeEnum;
        BondDefaultEvent: InstrumentEvent.InstrumentEventTypeEnum;
        CashDividendEvent: InstrumentEvent.InstrumentEventTypeEnum;
        AmortisationEvent: InstrumentEvent.InstrumentEventTypeEnum;
        CashFlowEvent: InstrumentEvent.InstrumentEventTypeEnum;
        ExerciseEvent: InstrumentEvent.InstrumentEventTypeEnum;
        ResetEvent: InstrumentEvent.InstrumentEventTypeEnum;
        TriggerEvent: InstrumentEvent.InstrumentEventTypeEnum;
        RawVendorEvent: InstrumentEvent.InstrumentEventTypeEnum;
        InformationalErrorEvent: InstrumentEvent.InstrumentEventTypeEnum;
    };
}
