import { CharacteristicValue, PlatformAccessory, Service, WithUUID } from 'homebridge';
import { VirtualAccessoriesPlatform } from '../platform.js';
import { AccessoryConfiguration } from '../configuration/configurationAccessory.js';
import { Accessory } from './accessory.js';
import { OpenableAccessoryConfiguration } from '../configuration/configurationOpenableAccesory.js';
/**
 * OpeningAccessory - Abstract accessory
 */
export declare abstract class OpeningAccessory extends Accessory {
    static readonly CLOSED: number;
    static readonly OPEN: number;
    static readonly DECREASING: number;
    static readonly INCREASING: number;
    static readonly STOPPED: number;
    private static readonly MIN_TIMEOUT_SECS;
    private static readonly DEFAULT_TIMEOUT_SECS;
    private readonly stateStorageKey;
    private transitionTimer;
    private transitionSteps;
    private openingAccessoryConfiguration;
    protected states: {
        CurrentPosition: number;
        TargetPosition: number;
        PositionState: number;
    };
    constructor(platform: VirtualAccessoriesPlatform, accessory: PlatformAccessory, accessoryConfiguration: AccessoryConfiguration);
    getCurrentPosition(): Promise<CharacteristicValue>;
    setTargetPosition(value: CharacteristicValue): Promise<void>;
    getTargetPosition(): Promise<CharacteristicValue>;
    getPositionState(): Promise<CharacteristicValue>;
    protected abstract getOpeningAccessoryConfiguration(): OpenableAccessoryConfiguration;
    protected abstract getOpeningAccessoryService(): WithUUID<typeof Service>;
    protected getJsonState(): string;
    static getStateName(position: number): string;
    static getPositionName(state: number): string;
}
