import type { GetDeviceConfig } from "@zwave-js/config";
import { CommandClasses, Duration, type EndpointId, type GetValueDB, type MaybeNotKnown, type MessageOrCCLogEntry, 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 { SceneControllerConfigurationCommand } from "../lib/_Types.js";
import type { CCEncodingContext, CCParsingContext } from "../lib/traits.js";
import { SceneControllerConfigurationCCValues } from "./_CCValues.generated.js";
export { SceneControllerConfigurationCCValues };
export declare class SceneControllerConfigurationCCAPI extends CCAPI {
    supportsCommand(cmd: SceneControllerConfigurationCommand): MaybeNotKnown<boolean>;
    protected get [SET_VALUE](): SetValueImplementation;
    protected get [POLL_VALUE](): PollValueImplementation;
    disable(groupId: number): Promise<SupervisionResult | undefined>;
    set(groupId: number, sceneId: number, dimmingDuration?: Duration | string): Promise<SupervisionResult | undefined>;
    getLastActivated(): Promise<MaybeNotKnown<Pick<SceneControllerConfigurationCCReport, "groupId" | "sceneId" | "dimmingDuration">>>;
    get(groupId: number): Promise<MaybeNotKnown<Pick<SceneControllerConfigurationCCReport, "sceneId" | "dimmingDuration">>>;
}
export declare class SceneControllerConfigurationCC extends CommandClass {
    ccCommand: SceneControllerConfigurationCommand;
    determineRequiredCCInterviews(): readonly CommandClasses[];
    interview(ctx: InterviewContext): Promise<void>;
    refreshValues(ctx: RefreshValuesContext, options?: RefreshValuesOptions): Promise<void>;
    /**
     * Returns the number of association groups reported by the node.
     * This only works AFTER the node has been interviewed by this CC
     * or the AssociationCC.
     */
    static getGroupCountCached(ctx: GetValueDB & GetDeviceConfig, endpoint: EndpointId): number;
}
export interface SceneControllerConfigurationCCSetOptions {
    groupId: number;
    sceneId: number;
    dimmingDuration?: Duration | string;
}
export declare class SceneControllerConfigurationCCSet extends SceneControllerConfigurationCC {
    constructor(options: WithAddress<SceneControllerConfigurationCCSetOptions>);
    static from(_raw: CCRaw, _ctx: CCParsingContext): SceneControllerConfigurationCCSet;
    groupId: number;
    sceneId: number;
    dimmingDuration: Duration;
    serialize(ctx: CCEncodingContext): Promise<Bytes>;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface SceneControllerConfigurationCCReportOptions {
    groupId: number;
    sceneId: number;
    dimmingDuration: Duration;
}
export declare class SceneControllerConfigurationCCReport extends SceneControllerConfigurationCC {
    constructor(options: WithAddress<SceneControllerConfigurationCCReportOptions>);
    static from(raw: CCRaw, ctx: CCParsingContext): SceneControllerConfigurationCCReport;
    readonly groupId: number;
    readonly sceneId: number;
    readonly dimmingDuration: Duration;
    persistValues(ctx: PersistValuesContext): boolean;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface SceneControllerConfigurationCCGetOptions {
    groupId: number;
}
export declare class SceneControllerConfigurationCCGet extends SceneControllerConfigurationCC {
    constructor(options: WithAddress<SceneControllerConfigurationCCGetOptions>);
    static from(_raw: CCRaw, _ctx: CCParsingContext): SceneControllerConfigurationCCGet;
    groupId: number;
    serialize(ctx: CCEncodingContext): Promise<Bytes>;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
//# sourceMappingURL=SceneControllerConfigurationCC.d.ts.map