import { CommandClasses, ConfigValue, ConfigValueFormat } from "@zwave-js/core"; import { IncomingCommandBase } from "../incoming_message_base.js"; import { EndpointCommand } from "./command.js"; import { IncomingMessageEndpointAccessControl } from "./access_control/incoming_message.js"; export interface IncomingCommandEndpointBase extends IncomingCommandBase { nodeId: number; endpoint?: number; } export interface IncomingCommandEndpointInvokeCCAPI extends IncomingCommandEndpointBase { command: EndpointCommand.invokeCCAPI; commandClass: CommandClasses; methodName: string; args: unknown[]; } export interface IncomingCommandEndpointSupportsCCAPI extends IncomingCommandEndpointBase { command: EndpointCommand.supportsCCAPI; commandClass: CommandClasses; } export interface IncomingCommandEndpointSupportsCC extends IncomingCommandEndpointBase { command: EndpointCommand.supportsCC; commandClass: CommandClasses; } export interface IncomingCommandEndpointControlsCC extends IncomingCommandEndpointBase { command: EndpointCommand.controlsCC; commandClass: CommandClasses; } export interface IncomingCommandEndpointIsCCSecure extends IncomingCommandEndpointBase { command: EndpointCommand.isCCSecure; commandClass: CommandClasses; } export interface IncomingCommandEndpointGetCCVersion extends IncomingCommandEndpointBase { command: EndpointCommand.getCCVersion; commandClass: CommandClasses; } export interface IncomingCommandEndpointGetNodeUnsafe extends IncomingCommandEndpointBase { command: EndpointCommand.getNodeUnsafe; } export interface IncomingCommandEndpointTryGetNode extends IncomingCommandEndpointBase { command: EndpointCommand.tryGetNode; } export interface IncomingCommandEndpointSetRawConfigParameterValue extends IncomingCommandEndpointBase { command: EndpointCommand.setRawConfigParameterValue; parameter: number; bitMask?: number; value: ConfigValue; valueSize?: 1 | 2 | 4; valueFormat?: ConfigValueFormat; } export interface IncomingCommandEndpointGetRawConfigParameterValue extends IncomingCommandEndpointBase { command: EndpointCommand.getRawConfigParameterValue; parameter: number; bitMask?: number; } export interface IncomingCommandEndpointGetCCs extends IncomingCommandEndpointBase { command: EndpointCommand.getCCs; } export interface IncomingCommandEndpointMaySupportBasicCC extends IncomingCommandEndpointBase { command: EndpointCommand.maySupportBasicCC; } export interface IncomingCommandEndpointWasCCRemovedViaConfig extends IncomingCommandEndpointBase { command: EndpointCommand.wasCCRemovedViaConfig; commandClass: CommandClasses; } export type IncomingMessageEndpoint = IncomingCommandEndpointInvokeCCAPI | IncomingCommandEndpointSupportsCCAPI | IncomingCommandEndpointSupportsCC | IncomingCommandEndpointControlsCC | IncomingCommandEndpointIsCCSecure | IncomingCommandEndpointGetCCVersion | IncomingCommandEndpointGetNodeUnsafe | IncomingCommandEndpointTryGetNode | IncomingCommandEndpointSetRawConfigParameterValue | IncomingCommandEndpointGetRawConfigParameterValue | IncomingCommandEndpointGetCCs | IncomingCommandEndpointMaySupportBasicCC | IncomingCommandEndpointWasCCRemovedViaConfig | IncomingMessageEndpointAccessControl;