interface EventInterface<SubjectInterface, DataType> {
    readonly name: string;
    readonly subject: SubjectInterface;
    data?: DataType;
}
declare class Event<SubjectInterface, DataType> implements EventInterface<SubjectInterface, DataType> {
    readonly name: string;
    readonly subject: SubjectInterface;
    data?: DataType;
    constructor(name: string, subject: SubjectInterface, data?: DataType);
}
export default Event;
export type { EventInterface };
