You can use standard /proc/filename interface to query the first battery. Although there is no APM BIOS, the kernel emulates APM functionality. Unfortunately, this file only has support for reporting the first battery, as far as I can tell.
On the iPAQ handhelds, there is a Hardware Abstraction Layer that, among other things, reports battery status in /proc/hal/battery.
It takes a short period of time after a sleeve is attached to accurately determine the battery status.