export type Slot = (args: Args, sender: Sender) => void; export declare class Signal { readonly sender: Sender; readonly name: string; constructor(sender: Sender, name: string); connect(slot: Slot, context?: object | null): boolean; disconnect(slot: Slot, context?: object | null): boolean; emit(args: Args): void; } export declare class Signal0 extends Signal { emit(): void; } export declare namespace Signal { function disconnect_between(sender: object, receiver: object): void; function disconnect_sender(sender: object): void; function disconnect_receiver(receiver: object, slot?: Slot, except_senders?: Set): void; function disconnect_all(obj: object): void; } export interface ISignalable { connect(signal: Signal, slot: Slot): boolean; disconnect(signal: Signal, slot: Slot): boolean; } export declare function Signalable(): { new (): { connect(signal: Signal, slot: Slot): boolean; disconnect(signal: Signal, slot: Slot): boolean; }; }; //# sourceMappingURL=signaling.d.ts.map