import { CommandClasses, 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 } from "../lib/CommandClass.js";
import { CentralSceneCommand, CentralSceneKeys } from "../lib/_Types.js";
import type { CCEncodingContext, CCParsingContext } from "../lib/traits.js";
import { CentralSceneCCValues } from "./_CCValues.generated.js";
export { CentralSceneCCValues };
export declare class CentralSceneCCAPI extends CCAPI {
    supportsCommand(cmd: CentralSceneCommand): MaybeNotKnown<boolean>;
    getSupported(): Promise<Pick<CentralSceneCCSupportedReport, "sceneCount" | "supportedKeyAttributes" | "supportsSlowRefresh"> | undefined>;
    getConfiguration(): Promise<Pick<CentralSceneCCConfigurationReport, "slowRefresh"> | undefined>;
    setConfiguration(slowRefresh: boolean): Promise<SupervisionResult | undefined>;
    protected get [SET_VALUE](): SetValueImplementation;
    protected get [POLL_VALUE](): PollValueImplementation;
}
export declare class CentralSceneCC extends CommandClass {
    ccCommand: CentralSceneCommand;
    determineRequiredCCInterviews(): readonly CommandClasses[];
    skipEndpointInterview(): boolean;
    interview(ctx: InterviewContext): Promise<void>;
}
export interface CentralSceneCCNotificationOptions {
    sequenceNumber: number;
    keyAttribute: CentralSceneKeys;
    sceneNumber: number;
    slowRefresh?: boolean;
}
export declare class CentralSceneCCNotification extends CentralSceneCC {
    constructor(options: WithAddress<CentralSceneCCNotificationOptions>);
    static from(raw: CCRaw, ctx: CCParsingContext): CentralSceneCCNotification;
    persistValues(ctx: PersistValuesContext): boolean;
    readonly sequenceNumber: number;
    readonly keyAttribute: CentralSceneKeys;
    readonly sceneNumber: number;
    readonly slowRefresh: boolean | undefined;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export interface CentralSceneCCSupportedReportOptions {
    sceneCount: number;
    supportsSlowRefresh: MaybeNotKnown<boolean>;
    supportedKeyAttributes: Record<number, readonly CentralSceneKeys[]>;
}
export declare class CentralSceneCCSupportedReport extends CentralSceneCC {
    constructor(options: WithAddress<CentralSceneCCSupportedReportOptions>);
    static from(raw: CCRaw, ctx: CCParsingContext): CentralSceneCCSupportedReport;
    persistValues(ctx: PersistValuesContext): boolean;
    readonly sceneCount: number;
    readonly supportsSlowRefresh: MaybeNotKnown<boolean>;
    private _supportedKeyAttributes;
    get supportedKeyAttributes(): ReadonlyMap<number, readonly CentralSceneKeys[]>;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export declare class CentralSceneCCSupportedGet extends CentralSceneCC {
}
export interface CentralSceneCCConfigurationReportOptions {
    slowRefresh: boolean;
}
export declare class CentralSceneCCConfigurationReport extends CentralSceneCC {
    constructor(options: WithAddress<CentralSceneCCConfigurationReportOptions>);
    static from(raw: CCRaw, ctx: CCParsingContext): CentralSceneCCConfigurationReport;
    readonly slowRefresh: boolean;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
export declare class CentralSceneCCConfigurationGet extends CentralSceneCC {
}
export interface CentralSceneCCConfigurationSetOptions {
    slowRefresh: boolean;
}
export declare class CentralSceneCCConfigurationSet extends CentralSceneCC {
    constructor(options: WithAddress<CentralSceneCCConfigurationSetOptions>);
    static from(_raw: CCRaw, _ctx: CCParsingContext): CentralSceneCCConfigurationSet;
    slowRefresh: boolean;
    serialize(ctx: CCEncodingContext): Promise<Bytes>;
    toLogEntry(ctx?: GetValueDB): MessageOrCCLogEntry;
}
//# sourceMappingURL=CentralSceneCC.d.ts.map