/**
 * Matter Protocol Support for Homebridge
 *
 * This module provides Matter protocol support through a Plugin API,
 * allowing plugin developers to explicitly register Matter accessories.
 */
import type { ColorControl, DoorLock, FanControl, Groups, Identify, LevelControl, ModeBase, OnOff, ScenesManagement, ServiceArea, Thermostat, ValveConfigurationAndControl, WindowCovering } from '@matter/main/clusters';
export { ChildBridgeMatterManager } from './ChildBridgeMatterManager.js';
export type { ClusterHandlerMap } from './clusterHandlerMap.js';
export type { ClusterStateMap } from './clusterStateMap.js';
export { MatterConfigCollector } from './config.js';
export { type MatterConfigValidationResult, MatterConfigValidator } from './configValidator.js';
export { MatterStatus } from './errors.js';
export { MatterBridgeManager } from './MatterBridgeManager.js';
export { MatterServer } from './server.js';
export { clusterNames, clusters, devices, deviceTypes, type InternalMatterAccessory, type MatterAccessory, type MatterAccessoryEventEmitter, MatterAccessoryEventTypes, type MatterClusterHandlers, type MatterClusterName, type MatterCommandHandler, MatterCommissioningError, type MatterConfig, MatterDeviceError, MatterError, type MatterErrorDetails, MatterErrorType, MatterNetworkError, MatterStorageError, } from './types.js';
/**
 * Matter Cluster Command Request Types
 * Use these types for handler arguments to get full type safety
 *
 * @example
 * ```typescript
 * import type { MatterRequests } from 'homebridge'
 *
 * handlers: {
 *   levelControl: {
 *     moveToLevel: async (args: MatterRequests.MoveToLevel) => {
 *       console.log(`Level: ${args.level}`)
 *     }
 *   }
 * }
 * ```
 */
export declare namespace MatterRequests {
    type OffWithEffect = OnOff.OffWithEffectRequest;
    type OnWithTimedOff = OnOff.OnWithTimedOffRequest;
    type MoveToLevel = LevelControl.MoveToLevelRequest;
    type Move = LevelControl.MoveRequest;
    type Step = LevelControl.StepRequest;
    type Stop = LevelControl.StopRequest;
    type MoveToClosestFrequency = LevelControl.MoveToClosestFrequencyRequest;
    type MoveToHue = ColorControl.MoveToHueRequest;
    type MoveHue = ColorControl.MoveHueRequest;
    type StepHue = ColorControl.StepHueRequest;
    type MoveToSaturation = ColorControl.MoveToSaturationRequest;
    type MoveSaturation = ColorControl.MoveSaturationRequest;
    type StepSaturation = ColorControl.StepSaturationRequest;
    type MoveToHueAndSaturation = ColorControl.MoveToHueAndSaturationRequest;
    type MoveToColor = ColorControl.MoveToColorRequest;
    type MoveColor = ColorControl.MoveColorRequest;
    type StepColor = ColorControl.StepColorRequest;
    type MoveToColorTemperature = ColorControl.MoveToColorTemperatureRequest;
    type MoveColorTemperature = ColorControl.MoveColorTemperatureRequest;
    type StepColorTemperature = ColorControl.StepColorTemperatureRequest;
    type StopMoveStep = ColorControl.StopMoveStepRequest;
    type EnhancedMoveToHue = ColorControl.EnhancedMoveToHueRequest;
    type EnhancedMoveHue = ColorControl.EnhancedMoveHueRequest;
    type EnhancedStepHue = ColorControl.EnhancedStepHueRequest;
    type EnhancedMoveToHueAndSaturation = ColorControl.EnhancedMoveToHueAndSaturationRequest;
    type ColorLoopSet = ColorControl.ColorLoopSetRequest;
    type IdentifyRequest = Identify.IdentifyRequest;
    type TriggerEffect = Identify.TriggerEffectRequest;
    type AddGroup = Groups.AddGroupRequest;
    type ViewGroup = Groups.ViewGroupRequest;
    type GetGroupMembership = Groups.GetGroupMembershipRequest;
    type RemoveGroup = Groups.RemoveGroupRequest;
    type AddGroupIfIdentifying = Groups.AddGroupIfIdentifyingRequest;
    type AddScene = ScenesManagement.AddSceneRequest;
    type ViewScene = ScenesManagement.ViewSceneRequest;
    type RemoveScene = ScenesManagement.RemoveSceneRequest;
    type RemoveAllScenes = ScenesManagement.RemoveAllScenesRequest;
    type StoreScene = ScenesManagement.StoreSceneRequest;
    type RecallScene = ScenesManagement.RecallSceneRequest;
    type GetSceneMembership = ScenesManagement.GetSceneMembershipRequest;
    type CopyScene = ScenesManagement.CopySceneRequest;
    type LockDoor = DoorLock.LockDoorRequest;
    type UnlockDoor = DoorLock.UnlockDoorRequest;
    type UnlockWithTimeout = DoorLock.UnlockWithTimeoutRequest;
    type UnboltDoor = DoorLock.UnboltDoorRequest;
    type SetUser = DoorLock.SetUserRequest;
    type GetUser = DoorLock.GetUserRequest;
    type ClearUser = DoorLock.ClearUserRequest;
    type SetCredential = DoorLock.SetCredentialRequest;
    type GetCredentialStatus = DoorLock.GetCredentialStatusRequest;
    type ClearCredential = DoorLock.ClearCredentialRequest;
    type SetWeekDaySchedule = DoorLock.SetWeekDayScheduleRequest;
    type GetWeekDaySchedule = DoorLock.GetWeekDayScheduleRequest;
    type ClearWeekDaySchedule = DoorLock.ClearWeekDayScheduleRequest;
    type SetYearDaySchedule = DoorLock.SetYearDayScheduleRequest;
    type GetYearDaySchedule = DoorLock.GetYearDayScheduleRequest;
    type ClearYearDaySchedule = DoorLock.ClearYearDayScheduleRequest;
    type SetHolidaySchedule = DoorLock.SetHolidayScheduleRequest;
    type GetHolidaySchedule = DoorLock.GetHolidayScheduleRequest;
    type ClearHolidaySchedule = DoorLock.ClearHolidayScheduleRequest;
    type SetAliroReaderConfig = DoorLock.SetAliroReaderConfigRequest;
    type GoToLiftPercentage = WindowCovering.GoToLiftPercentageRequest;
    type GoToTiltPercentage = WindowCovering.GoToTiltPercentageRequest;
    type SetpointRaiseLower = Thermostat.SetpointRaiseLowerRequest;
    type SetActivePreset = Thermostat.SetActivePresetRequest;
    type SetActiveSchedule = Thermostat.SetActiveScheduleRequest;
    type FanStep = FanControl.StepRequest;
    type ChangeToMode = ModeBase.ChangeToModeRequest;
    type SelectAreas = ServiceArea.SelectAreasRequest;
    type SkipArea = ServiceArea.SkipAreaRequest;
    type OpenValve = ValveConfigurationAndControl.OpenRequest;
}
/**
 * Matter Cluster Types & Enums
 * Import these to access type-safe enum values for cluster attributes.
 *
 * Only the clusters that are actually used are exported here to minimize startup time.
 * If you need additional clusters, they must be added to the imports in types.ts.
 */
export { clusters as MatterTypes } from './types.js';
//# sourceMappingURL=index.d.ts.map