import { HomieDevice } from "@chrispyduck/homie-device";
import { I2CDevice } from "./I2CDevice";
import { II2CConfiguration } from "./II2CConfiguration";
import { ISensor, ISensorEvents } from "../ISensor";
import { ITemperatureAndHumidity } from "../interfaces/ITemperatureAndHumidity";
export declare const I2C_ADDRESS = 56;
declare enum State {
    Unknown = 0,
    Idle = 1,
    ReceiveStatus = 10,
    ReceiveMeasurement = 11,
    Reset = 99
}
export interface IAHT20Events extends ISensorEvents<ITemperatureAndHumidity> {
    "temperature": (temp: number) => void;
    "humidity": (hum: number) => void;
}
export interface IAHT20 {
    on<U extends keyof IAHT20Events>(event: U, listener: IAHT20Events[U]): this;
    emit<U extends keyof IAHT20Events>(event: U, ...args: Parameters<IAHT20Events[U]>): boolean;
}
export default class AHT20 extends I2CDevice<ITemperatureAndHumidity> implements ISensor<ITemperatureAndHumidity>, IAHT20 {
    static readonly DefaultConfiguration: II2CConfiguration;
    constructor(config?: II2CConfiguration);
    private humidity$;
    get humidity(): number;
    private temperature$;
    get temperature(): number;
    private lastReset;
    private zeroReads;
    private readonly buffer;
    private state$;
    private setState;
    get state(): State;
    protected onInit: () => Promise<void>;
    protected reeset: () => Promise<void>;
    register: (device: HomieDevice) => void;
    private queryStatus;
    private readStatus;
    private initializeDevice;
    read: () => Promise<ITemperatureAndHumidity>;
    private crc8x_simple;
}
export {};
//# sourceMappingURL=AHT20.d.ts.map