import { InstrumentEvent } from './instrumentEvent';
import { LusidInstrument } from './lusidInstrument';
/**
 * Definition of an exercise event.  This is an event that occurs on transformation of an instrument owing to exercise. e.g. an option of  some type into its underlying.
 */
export interface ExerciseEvent {
    instrument: LusidInstrument;
    /**
     * What is the event status, is it a known (ie historic) or unknown (ie projected) event?
     */
    eventStatus: string;
    /**
     * The date the exercise window starts, or point it takes effect on.
     */
    anchorDate: Date;
    /**
     * The date the exercise window ends, or point it takes effect on.
     */
    readonly eventWindowEnd?: Date;
    /**
     * The Type of Event. The available values are: TransitionEvent, InformationalEvent, OpenEvent, CloseEvent, StockSplitEvent, BondDefaultEvent, CashDividendEvent, AmortisationEvent, CashFlowEvent, ExerciseEvent, ResetEvent, TriggerEvent, RawVendorEvent, InformationalErrorEvent
     */
    instrumentEventType: ExerciseEvent.InstrumentEventTypeEnum;
}
export declare namespace ExerciseEvent {
    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;
    };
}
