import { CharacteristicValue, PlatformAccessory } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from './accessory.js';
/**
 * Lock - Accessory implementation
 */
export declare class Lock extends Accessory {
    static readonly ACCESSORY_TYPE_NAME: string;
    static readonly UNSECURED: number;
    static readonly SECURED: number;
    static readonly JAMMED: number;
    static readonly UNKNOWN: number;
    static readonly SECURED_REMOTELY: number;
    static readonly UNSECURED_REMOTELY: number;
    static readonly SECURED_BY_AUTO_SECURE_TIMEOUT: number;
    private readonly stateStorageKey;
    private readonly securityTimeoutStorageKey;
    private readonly lastKnownActionStorageKey;
    private readonly deviceCredentialPublicKeysStorageKey;
    private readonly readerPrivateKeysStorageKey;
    private readonly deviceCredentialPublicKeysCount;
    private readonly readerPrivateKeysCount;
    private readonly nfcAccessSupportedConfiguration;
    private deviceCredentialPublicKeys;
    private readerPrivateKeys;
    private setupHomeKey;
    private readonly lockHardwareFinish;
    private securityTimerId;
    private states;
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    getLockCurrentState(): Promise<CharacteristicValue>;
    setLockTargetState(value: CharacteristicValue): Promise<void>;
    getLockTargetState(): Promise<CharacteristicValue>;
    setLockControlPoint(value: CharacteristicValue): Promise<void>;
    getVersion(): Promise<CharacteristicValue>;
    setLockManagementAutoSecurityTimeout(value: CharacteristicValue): Promise<void>;
    getLockManagementAutoSecurityTimeout(): Promise<CharacteristicValue>;
    getLockLastKnownAction(): Promise<CharacteristicValue>;
    getConfigurationState(): Promise<CharacteristicValue>;
    setNFCAccessControlPoint(value: CharacteristicValue): Promise<string>;
    getNFCAccessControlPoint(): Promise<CharacteristicValue>;
    getNFCAccessSupportedConfiguration(): Promise<CharacteristicValue>;
    protected getJsonState(): string;
    protected getAccessoryTypeName(): string;
    static getStateName(state: number): string;
    private startAutoSecurityTimeout;
    private readonly GET_DEVICE_CREDENTIAL_REQUEST;
    private readonly GET_READER_KEY_REQUEST;
    private readonly ADD_DEVICE_CREDENTIAL_REQUEST;
    private readonly ADD_GET_READER_KEY_REQUEST;
    private readonly RFEMOVE_DEVICE_CREDENTIAL_REQUEST;
    private readonly REMOVE_GET_READER_KEY_REQUEST;
    private processAccessControlPointRequest;
}
