type SubscribeName = string;
type SubscribeFunc = Function;
type SubscribeList = Record<SubscribeName, SubscribeFunc[]>;
interface SubscribeClass {
    on(name: SubscribeName, subscribeFunction: SubscribeFunc): void;
    emit(name: SubscribeName, ...args: any[]): void;
    off(name: SubscribeName, subscribeFunction?: SubscribeFunc): void;
    once(name: SubscribeName, subscribeFunction: SubscribeFunc): void;
}

export { SubscribeClass, SubscribeFunc, SubscribeList, SubscribeName };
