import { IObservable } from "./Observable.js"; import { Option } from "./Option.js"; import { FSharpChoice$2_$union } from "./Choice.js"; export type Handler = (sender: any, x: T) => void; export interface IDelegateEvent { AddHandler(d: Delegate): void; RemoveHandler(d: Delegate): void; } export interface IEvent$2 extends IDelegateEvent, IObservable { } export type IEvent = IEvent$2, T>; export declare class Event$2 { private delegates; private _add; private _remove; get Publish(): IEvent$2; Trigger(value: Args): void; Trigger(sender: any, value: Args): void; } export declare class Event extends Event$2, T> { } export declare function add(callback: (x: T) => void, sourceEvent: IEvent$2): void; export declare function choose(chooser: (x: T) => Option, sourceEvent: IEvent$2): IEvent; export declare function filter(predicate: (x: T) => boolean, sourceEvent: IEvent$2): IEvent; export declare function map(mapping: (x: T) => U, sourceEvent: IEvent$2): IEvent; export declare function merge(event1: IEvent$2, event2: IEvent$2): IEvent; export declare function pairwise(sourceEvent: IEvent$2): IEvent<[T, T]>; export declare function partition(predicate: (x: T) => boolean, sourceEvent: IEvent$2): [IEvent, IEvent]; export declare function scan(collector: (u: U, t: T) => U, state: U, sourceEvent: IEvent$2): IEvent; export declare function split(splitter: (x: T) => FSharpChoice$2_$union, sourceEvent: IEvent$2): [IEvent, IEvent]; export declare function createEvent(addHandler: (h: Del) => void, removeHandler: (h: Del) => void): IEvent$2;