import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
import { DeviceType } from '../device/device-type.js';
/**
 * On-camera AI object detection cap. Surfaces per-device the classes
 * the firmware can detect and the last-seen instance of each. The
 * provider also fan-outs these to the global `detection.camera-native`
 * event bus with `source: 'onboard'` so cross-cutting system services
 * (alert-center, advanced-notifier, recording-engine) can subscribe
 * once and receive events from every camera.
 *
 * Distinct from `motion-detection` (ML pipeline) and `motion` (hardware
 * PIR or firmware motion pulse): this cap is specifically the AI
 * classifier output coming FROM the camera, not the local pipeline.
 */
export declare const NativeObjectClassEnum: z.ZodEnum<{
    person: "person";
    vehicle: "vehicle";
    animal: "animal";
    face: "face";
    other: "other";
    package: "package";
}>;
export type NativeObjectClass = z.infer<typeof NativeObjectClassEnum>;
export declare const NativeDetectionSchema: z.ZodObject<{
    class: z.ZodEnum<{
        person: "person";
        vehicle: "vehicle";
        animal: "animal";
        face: "face";
        other: "other";
        package: "package";
    }>;
    timestamp: z.ZodNumber;
    confidence: z.ZodOptional<z.ZodNumber>;
}, z.core.$strip>;
export type NativeDetection = z.infer<typeof NativeDetectionSchema>;
export declare const NativeObjectDetectionStatusSchema: z.ZodObject<{
    lastByClass: z.ZodRecord<z.ZodEnum<{
        person: "person";
        vehicle: "vehicle";
        animal: "animal";
        face: "face";
        other: "other";
        package: "package";
    }>, z.ZodNullable<z.ZodObject<{
        class: z.ZodEnum<{
            person: "person";
            vehicle: "vehicle";
            animal: "animal";
            face: "face";
            other: "other";
            package: "package";
        }>;
        timestamp: z.ZodNumber;
        confidence: z.ZodOptional<z.ZodNumber>;
    }, z.core.$strip>>>;
    supportedClasses: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
        person: "person";
        vehicle: "vehicle";
        animal: "animal";
        face: "face";
        other: "other";
        package: "package";
    }>>>;
}, z.core.$strip>;
export type NativeObjectDetectionStatus = z.infer<typeof NativeObjectDetectionStatusSchema>;
export declare const nativeObjectDetectionCapability: {
    readonly name: "native-object-detection";
    readonly scope: "device";
    readonly mode: "singleton";
    readonly deviceTypes: readonly [DeviceType.Camera];
    readonly methods: {};
    readonly events: {
        readonly onDetected: {
            readonly data: z.ZodObject<{
                deviceId: z.ZodNumber;
                detection: z.ZodObject<{
                    class: z.ZodEnum<{
                        person: "person";
                        vehicle: "vehicle";
                        animal: "animal";
                        face: "face";
                        other: "other";
                        package: "package";
                    }>;
                    timestamp: z.ZodNumber;
                    confidence: z.ZodOptional<z.ZodNumber>;
                }, z.core.$strip>;
            }, z.core.$strip>;
        };
    };
    readonly status: {
        readonly schema: z.ZodObject<{
            lastByClass: z.ZodRecord<z.ZodEnum<{
                person: "person";
                vehicle: "vehicle";
                animal: "animal";
                face: "face";
                other: "other";
                package: "package";
            }>, z.ZodNullable<z.ZodObject<{
                class: z.ZodEnum<{
                    person: "person";
                    vehicle: "vehicle";
                    animal: "animal";
                    face: "face";
                    other: "other";
                    package: "package";
                }>;
                timestamp: z.ZodNumber;
                confidence: z.ZodOptional<z.ZodNumber>;
            }, z.core.$strip>>>;
            supportedClasses: z.ZodReadonly<z.ZodArray<z.ZodEnum<{
                person: "person";
                vehicle: "vehicle";
                animal: "animal";
                face: "face";
                other: "other";
                package: "package";
            }>>>;
        }, z.core.$strip>;
        readonly kind: "push";
    };
};
export type INativeObjectDetectionProvider = InferProvider<typeof nativeObjectDetectionCapability>;
//# sourceMappingURL=native-object-detection.cap.d.ts.map