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 BatteryState { snapshot: [BatteryState]; target: any; level: number; charging: boolean; chargingTime: number; dischargingTime: number; callback(): void; change(): void; mount(): void; clean(): void; } type BatteryArg = Partial | BatteryState['change']; declare const batteryEvent: () => EventState; export { type BatteryArg, type BatteryState, batteryEvent };