type ExtractArgs = T[keyof T] extends (...args: infer A) => any ? A : any[]; type EventState> = T & { (key?: keyof T, fun?: T[keyof T]): EventState; (target?: Partial): EventState; }; interface OnlineState { snapshot: [OnlineState]; online: boolean; callback(): void; change(): void; mount(): void; clean(): void; } type OnlineArg = Partial | OnlineState['change']; declare const onlineEvent: () => EventState; export { type OnlineArg, type OnlineState, onlineEvent };