import { PlatformAccessory, CharacteristicValue, CharacteristicSetCallback, CharacteristicGetCallback } from 'homebridge';
import { KeyblePlatform } from './platform';
declare enum Position {
    Lock = 0,
    Unlock = 2,
    Open = 3,
    Unlock_MinStep = 1
}
/**
 * Platform Accessory
 * An instance of this class is created for each accessory your platform registers
 * Each accessory may expose multiple services of different service types.
 */
export declare class KeybleAccessory {
    private readonly platform;
    private readonly accessory;
    private service;
    private lock;
    /**
     * These are just used to create a working example
     * You should implement your own code to track the state of your accessory
     */
    private state;
    constructor(platform: KeyblePlatform, accessory: PlatformAccessory);
    /**
     * Handle the "GET" requests from HomeKit
     * These are sent when HomeKit wants to know the current state of the accessory, for example, checking if a Light bulb is on.
     *
     * GET requests should return as fast as possbile. A long delay here will result in
     * HomeKit being unresponsive and a bad user experience in general.
     *
     * If your device takes time to respond you should update the status of your device
     * asynchronously instead using the `updateCharacteristic` method instead.
  
     * @example
     * this.service.updateCharacteristic(this.platform.Characteristic.On, true)
     */
    getCurrentPosition(callback: CharacteristicGetCallback): void;
    getState(callback: CharacteristicGetCallback): void;
    getTargetPosition(callback: CharacteristicGetCallback): void;
    /**
     * Handle "SET" requests from HomeKit
     * These are sent when the user changes the state of an accessory, for example, changing the Brightness
     */
    setTargetPosition(value: CharacteristicValue, callback: CharacteristicSetCallback): void;
    updateCurrentPosition(position: Position): void;
    handleLockError(error: string): void;
    handleStatusChange(newStatus: {
        lock_status_id: number;
        lock_status: string;
    }): void;
}
export {};
//# sourceMappingURL=keybleAccessory.d.ts.map