import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
import { DeviceType } from '../device/device-type.js';
/**
 * List of accessory children linked to a parent device (camera, hub).
 * Returns only numeric device ids — the rest (role, deviceType, name,
 * caps) is derived by fetching each child via `device-manager.getDevice`.
 *
 * The single-source-of-truth for what an accessory IS remains the child
 * device itself; this cap only surfaces the grouping.
 */
export declare const AccessoriesStatusSchema: z.ZodObject<{
    childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
}, z.core.$strip>;
export type AccessoriesStatus = z.infer<typeof AccessoriesStatusSchema>;
export declare const accessoriesCapability: {
    readonly name: "accessories";
    readonly scope: "device";
    readonly mode: "singleton";
    readonly deviceTypes: readonly [DeviceType.Camera, DeviceType.Hub];
    readonly methods: {};
    readonly events: {
        /**
         * Emitted when a child device is created, removed, or its parent
         * assignment changes. Payload carries the fresh list.
         */
        readonly onAccessoriesChanged: {
            readonly data: z.ZodObject<{
                deviceId: z.ZodNumber;
                childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
            }, z.core.$strip>;
        };
    };
    readonly status: {
        readonly schema: z.ZodObject<{
            childDeviceIds: z.ZodReadonly<z.ZodArray<z.ZodNumber>>;
        }, z.core.$strip>;
        readonly kind: "command-driven";
    };
};
export type IAccessoriesProvider = InferProvider<typeof accessoriesCapability>;
//# sourceMappingURL=accessories.cap.d.ts.map