import { z } from 'zod';
import { type InferProvider } from './capability-definition.js';
/**
 * snapshot-provider — collection of native snapshot implementations.
 *
 * Device provider addons (ONVIF, Frigate, Scrypted, etc.) register here
 * when they can capture frames through a protocol-native path (e.g.
 * ONVIF GetSnapshotUri, Frigate /api/<cam>/latest.jpg). The `snapshot`
 * singleton orchestrator iterates over the collection, asking each
 * provider whether it supports the requested device, and calls the
 * first matching one.
 *
 * If no provider in the collection supports a device, the orchestrator
 * falls back to `stream-broker.grabFrame` (universal fallback).
 *
 * Public tRPC router (auto-mounted) so out-of-process addons, agents,
 * and advanced clients can bypass the orchestrator when needed.
 */
export declare const snapshotProviderCapability: {
    readonly name: "snapshot-provider";
    readonly scope: "system";
    readonly mode: "collection";
    readonly methods: {
        readonly supportsDevice: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            deviceId: z.ZodNumber;
        }, z.core.$strip>, z.ZodBoolean, import("./capability-definition.js").CapabilityMethodKind>;
        readonly getSnapshot: import("./capability-definition.js").CapabilityMethodSchema<z.ZodObject<{
            deviceId: z.ZodNumber;
            streamId: z.ZodOptional<z.ZodString>;
        }, z.core.$strip>, z.ZodNullable<z.ZodObject<{
            base64: z.ZodString;
            contentType: z.ZodString;
        }, z.core.$strip>>, import("./capability-definition.js").CapabilityMethodKind>;
    };
};
export type ISnapshotProvider = InferProvider<typeof snapshotProviderCapability> & {
    readonly id: string;
    readonly name: string;
};
//# sourceMappingURL=snapshot-provider.cap.d.ts.map