/** NOTIFICATION **/
export interface INotification<GName extends string, GValue> {
    readonly name: GName;
    readonly value: GValue;
}
export declare type IGenericNotification = INotification<string, any>;
export declare type TInferNotificationGName<GNotification extends IGenericNotification> = GNotification extends INotification<infer GName, any> ? GName : never;
export declare type TInferNotificationGValue<GNotification extends IGenericNotification> = GNotification extends INotification<string, infer GValue> ? GValue : never;
export declare type TInferGValueFromNotificationsUnionAndName<GNotificationsUnion extends IGenericNotification, GName extends TInferNotificationGName<GNotificationsUnion>> = TInferNotificationGValue<Extract<GNotificationsUnion, INotification<GName, any>>>;
/** DEFAULT **/
