type IEvent = { readonly shouldDedup: boolean; readonly trigger: string | null; // the name of the event to be sent to the server readonly name: string; // flag to indicate if extra information should be collected from the event readonly hasTypes: boolean; // flag to indicate if the event should redirect the user to the next page readonly redirectOnFinish: boolean; // flag to indicate if the event should block the default behaviour readonly isBlocking: boolean; // flag to indicate if the event can be triggered multiple times readonly allowMultiple: boolean; // the event source readonly source: Window | Document | null; // check if the event is valid isValid(event: Event): boolean; // the data.type the event sends itself, instead of the input element's type typeOf?(event?: Event): string | null; // what the event does for the person before it is recorded (copying a // command); runs on every valid occurrence, recorded or not perform?(event?: Event): void; }; export default IEvent;