import { Logging } from "homebridge";
import { HOMEKIT_TYPES } from "./accessories";
export interface IBlynkWidget {
    id: number;
    deviceId: number;
    label: string;
    pin: number;
    type: string;
    pinType: string;
    max: number;
    min: number;
    value: string;
    typeOf: string;
    model: string;
    token: string;
}
export declare abstract class BlynkWidgetBase {
    protected readonly log: Logging;
    protected readonly baseUrl: string;
    protected id: number;
    protected name: string;
    protected manufacturer: string;
    protected model: string;
    protected widgetType: string;
    protected pinType: string;
    protected pinNumber: number;
    protected token: string;
    protected pinUrlLabel: string;
    protected pinLabel: string;
    protected typeOf: HOMEKIT_TYPES;
    constructor(log: Logging, baseUrl: string, widget: Record<string, string | number>);
    getId(): number;
    getTypeOf(): HOMEKIT_TYPES;
    getName(): string;
    getManufacturer(): string;
    getModel(): string;
    getWidgetType(): string;
    getPinType(): string;
    getPinNumber(): number;
    getPinLabel(): string;
    getPin(): string;
    abstract setPin(): string;
    abstract setValue(value: string): void;
    abstract getValue(): number;
    abstract getMin(): number;
    abstract getMax(): number;
    private readonly got;
    protected requestUrl(url: string): Promise<string>;
    toString(): string;
}
export declare class BlynkWidgetButton extends BlynkWidgetBase {
    private readonly SWITCH_ON;
    private readonly SWITCH_OFF;
    protected minValue: number;
    protected maxValue: number;
    private curValue;
    constructor(log: Logging, baseUrl: string, widget: Record<string, string | number>);
    setPin(): string;
    setValue(value: string): void;
    getValue(): number;
    getMin(): number;
    getMax(): number;
    toString(): string;
}
export declare class BlynkWidgetDimmer extends BlynkWidgetBase {
    private dimmerLow;
    private dimmerHigh;
    private dimmerCur;
    constructor(log: Logging, baseUrl: string, widget: Record<string, string | number>);
    getValue(): number;
    getMin(): number;
    getMax(): number;
    setPin(): string;
    setValue(value: string): void;
    setDimmerLow(value: number): void;
    setDimmerHigh(value: number): void;
    toString(): string;
}
