import { type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, type Scale, type SupervisionResult, type WithAddress } from "@zwave-js/core";
import { Bytes } from "@zwave-js/shared";
import { CCAPI, POLL_VALUE, type PollValueImplementation, SET_VALUE, type SetValueImplementation } from "../lib/API.js";
import { type CCRaw, CommandClass, type InterviewContext, type PersistValuesContext, type RefreshValuesContext, type RefreshValuesOptions } from "../lib/CommandClass.js";
import { type HumidityControlSetpointCapabilities, HumidityControlSetpointCommand, HumidityControlSetpointType, type HumidityControlSetpointValue } from "../lib/_Types.js";
import type { CCEncodingContext, CCParsingContext } from "../lib/traits.js";
import { HumidityControlSetpointCCValues } from "./_CCValues.generated.js";
export { HumidityControlSetpointCCValues };
export declare class HumidityControlSetpointCCAPI extends CCAPI {
    supportsCommand(cmd: HumidityControlSetpointCommand): MaybeNotKnown<boolean>;
    protected get [SET_VALUE](): SetValueImplementation;
    protected get [POLL_VALUE](): PollValueImplementation;
    get(setpointType: HumidityControlSetpointType): Promise<MaybeNotKnown<HumidityControlSetpointValue>>;
    set(setpointType: HumidityControlSetpointType, value: number, scale: number): Promise<SupervisionResult | undefined>;
    getCapabilities(setpointType: HumidityControlSetpointType): Promise<MaybeNotKnown<HumidityControlSetpointCapabilities>>;
    getSupportedSetpointTypes(): Promise<MaybeNotKnown<readonly HumidityControlSetpointType[]>>;
    getSupportedScales(setpointType: HumidityControlSetpointType): Promise<MaybeNotKnown<readonly Scale[]>>;
}
export declare class HumidityControlSetpointCC extends CommandClass {
    ccCommand: HumidityControlSetpointCommand;
    translatePropertyKey(ctx: GetValueDB, property: string | number, propertyKey: string | number): string | undefined;
    interview(ctx: InterviewContext): Promise<void>;
    refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void>;
}
export interface HumidityControlSetpointCCSetOptions {
    setpointType: HumidityControlSetpointType;
    value: number;
    scale: number;
}
export declare class HumidityControlSetpointCCSet extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCSetOptions>);
    static from(_raw: CCRaw, _ctx: CCParsingContext): HumidityControlSetpointCCSet;
    setpointType: HumidityControlSetpointType;
    value: number;
    scale: number;
    serialize(ctx: CCEncodingContext): Promise<Bytes>;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface HumidityControlSetpointCCReportOptions {
    type: HumidityControlSetpointType;
    scale: number;
    value: number;
}
export declare class HumidityControlSetpointCCReport extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCReportOptions>);
    static from(raw: CCRaw, ctx: CCParsingContext): HumidityControlSetpointCCReport;
    persistValues(ctx: PersistValuesContext): boolean;
    type: HumidityControlSetpointType;
    scale: number;
    value: number;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface HumidityControlSetpointCCGetOptions {
    setpointType: HumidityControlSetpointType;
}
export declare class HumidityControlSetpointCCGet extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCGetOptions>);
    static from(_raw: CCRaw, _ctx: CCParsingContext): HumidityControlSetpointCCGet;
    setpointType: HumidityControlSetpointType;
    serialize(ctx: CCEncodingContext): Promise<Bytes>;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface HumidityControlSetpointCCSupportedReportOptions {
    supportedSetpointTypes: HumidityControlSetpointType[];
}
export declare class HumidityControlSetpointCCSupportedReport extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCSupportedReportOptions>);
    static from(raw: CCRaw, ctx: CCParsingContext): HumidityControlSetpointCCSupportedReport;
    readonly supportedSetpointTypes: readonly HumidityControlSetpointType[];
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export declare class HumidityControlSetpointCCSupportedGet extends HumidityControlSetpointCC {
}
export interface HumidityControlSetpointCCScaleSupportedReportOptions {
    supportedScales: number[];
}
export declare class HumidityControlSetpointCCScaleSupportedReport extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCScaleSupportedReportOptions>);
    static from(raw: CCRaw, ctx: CCParsingContext): HumidityControlSetpointCCScaleSupportedReport;
    readonly supportedScales: readonly number[];
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface HumidityControlSetpointCCScaleSupportedGetOptions {
    setpointType: HumidityControlSetpointType;
}
export declare class HumidityControlSetpointCCScaleSupportedGet extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCScaleSupportedGetOptions>);
    static from(_raw: CCRaw, _ctx: CCParsingContext): HumidityControlSetpointCCScaleSupportedGet;
    setpointType: HumidityControlSetpointType;
    serialize(ctx: CCEncodingContext): Promise<Bytes>;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface HumidityControlSetpointCCCapabilitiesReportOptions {
    type: HumidityControlSetpointType;
    minValue: number;
    maxValue: number;
    minValueScale: number;
    maxValueScale: number;
}
export declare class HumidityControlSetpointCCCapabilitiesReport extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCCapabilitiesReportOptions>);
    static from(raw: CCRaw, ctx: CCParsingContext): HumidityControlSetpointCCCapabilitiesReport;
    persistValues(ctx: PersistValuesContext): boolean;
    type: HumidityControlSetpointType;
    minValue: number;
    maxValue: number;
    minValueScale: number;
    maxValueScale: number;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface HumidityControlSetpointCCCapabilitiesGetOptions {
    setpointType: HumidityControlSetpointType;
}
export declare class HumidityControlSetpointCCCapabilitiesGet extends HumidityControlSetpointCC {
    constructor(options: WithAddress<HumidityControlSetpointCCCapabilitiesGetOptions>);
    static from(_raw: CCRaw, _ctx: CCParsingContext): HumidityControlSetpointCCCapabilitiesGet;
    setpointType: HumidityControlSetpointType;
    serialize(ctx: CCEncodingContext): Promise<Bytes>;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
//# sourceMappingURL=HumidityControlSetpointCC.d.ts.map