import { Props } from 'misstime';
import { ChangeCallback, ReceiveCallback } from '../utils/types';
declare type Events
= {
[Key in keyof Props
as `$change:${string & Key}` | `$changed:${string & Key}`]?: ChangeCallback, Key>[];
} & {
[Key in keyof Props as `$receive:${string & Key}`]?: ReceiveCallback, Key>[];
} & {
[Key in keyof E]?: E[Key][];
};
export declare class Event {
private $events;
$blockAddEvent: boolean;
on>(name: `$receive:${string & K}`, callback: ReceiveCallback, K>): void;
on>(name: `$change:${string & K}`, callback: ChangeCallback, K>): void;
on>(name: `$changed:${string & K}`, callback: ChangeCallback, K>): void;
on(name: K, callback: (...args: E[K] extends any[] ? E[K] : never) => void): void;
on(name: K, callback: L[K]): void;
off>(name?: K, callback?: Function): void;
trigger(name: K, ...args: any[] & E[K]): void;
}
export {};