/** Shared Zod schemas used across streaming capabilities. */
import { z } from 'zod';
export declare const CamProfileSchema: z.ZodEnum<{
    high: "high";
    mid: "mid";
    low: "low";
}>;
export type CamProfile = z.infer<typeof CamProfileSchema>;
/** Canonical ordering. Hard-coded; never sorted. */
export declare const CAM_PROFILE_ORDER: readonly ["high", "mid", "low"];
export declare const CamStreamKindSchema: z.ZodEnum<{
    "pull-rtsp": "pull-rtsp";
    "pull-rtmp": "pull-rtmp";
    "pull-http": "pull-http";
    "pull-rfc4571": "pull-rfc4571";
    "push-annexb": "push-annexb";
}>;
export type CamStreamKind = z.infer<typeof CamStreamKindSchema>;
export declare const CamStreamResolutionSchema: z.ZodObject<{
    width: z.ZodNumber;
    height: z.ZodNumber;
}, z.core.$strip>;
export declare const CameraStreamSchema: z.ZodObject<{
    camStreamId: z.ZodString;
    deviceId: z.ZodNumber;
    kind: z.ZodEnum<{
        "pull-rtsp": "pull-rtsp";
        "pull-rtmp": "pull-rtmp";
        "pull-http": "pull-http";
        "pull-rfc4571": "pull-rfc4571";
        "push-annexb": "push-annexb";
    }>;
    url: z.ZodOptional<z.ZodString>;
    codec: z.ZodOptional<z.ZodString>;
    resolution: z.ZodOptional<z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
    }, z.core.$strip>>;
    fps: z.ZodOptional<z.ZodNumber>;
    label: z.ZodOptional<z.ZodString>;
    deviceFeatures: z.ZodOptional<z.ZodArray<z.ZodString>>;
    autoEligible: z.ZodOptional<z.ZodBoolean>;
    metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
}, z.core.$strip>;
export type CameraStream = z.infer<typeof CameraStreamSchema>;
export declare const ProfileSlotStatusSchema: z.ZodEnum<{
    error: "error";
    streaming: "streaming";
    idle: "idle";
    connecting: "connecting";
    unassigned: "unassigned";
}>;
export type ProfileSlotStatus = z.infer<typeof ProfileSlotStatusSchema>;
export declare const ProfileSlotSchema: z.ZodObject<{
    deviceId: z.ZodNumber;
    profile: z.ZodEnum<{
        high: "high";
        mid: "mid";
        low: "low";
    }>;
    brokerId: z.ZodString;
    sourceCamStreamId: z.ZodNullable<z.ZodString>;
    status: z.ZodEnum<{
        error: "error";
        streaming: "streaming";
        idle: "idle";
        connecting: "connecting";
        unassigned: "unassigned";
    }>;
    resolution: z.ZodOptional<z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
    }, z.core.$strip>>;
    codec: z.ZodOptional<z.ZodString>;
    preBufferSec: z.ZodOptional<z.ZodNumber>;
    errorMessage: z.ZodOptional<z.ZodString>;
}, z.core.$strip>;
export type ProfileSlot = z.infer<typeof ProfileSlotSchema>;
/**
 * Zod schema for StreamSourceEntry — the canonical stream descriptor
 * exposed by ICameraDevice.getStreamSources() and consumed by the broker.
 */
export declare const StreamSourceEntrySchema: z.ZodObject<{
    id: z.ZodString;
    label: z.ZodString;
    protocol: z.ZodEnum<{
        custom: "custom";
        rtsp: "rtsp";
        rtmp: "rtmp";
        webrtc: "webrtc";
        annexb: "annexb";
        "http-mjpeg": "http-mjpeg";
    }>;
    url: z.ZodOptional<z.ZodString>;
    resolution: z.ZodOptional<z.ZodReadonly<z.ZodObject<{
        width: z.ZodNumber;
        height: z.ZodNumber;
    }, z.core.$strip>>>;
    fps: z.ZodOptional<z.ZodNumber>;
    bitrate: z.ZodOptional<z.ZodNumber>;
    codec: z.ZodOptional<z.ZodString>;
    profileHint: z.ZodOptional<z.ZodEnum<{
        high: "high";
        mid: "mid";
        low: "low";
    }>>;
}, z.core.$strip>;
export declare const StreamSourceSchema: z.ZodObject<{
    type: z.ZodString;
    url: z.ZodString;
    videoCodec: z.ZodOptional<z.ZodString>;
    audioCodec: z.ZodOptional<z.ZodString>;
    metadata: z.ZodOptional<z.ZodReadonly<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
}, z.core.$strip>;
export declare const EncodedPacketSchema: z.ZodObject<{
    type: z.ZodEnum<{
        audio: "audio";
        video: "video";
    }>;
    data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
    pts: z.ZodNumber;
    dts: z.ZodNumber;
    keyframe: z.ZodBoolean;
    codec: z.ZodString;
}, z.core.$strip>;
export declare const DecodedFrameSchema: z.ZodObject<{
    data: z.ZodCustom<Uint8Array<ArrayBuffer>, Uint8Array<ArrayBuffer>>;
    width: z.ZodNumber;
    height: z.ZodNumber;
    format: z.ZodEnum<{
        jpeg: "jpeg";
        rgb: "rgb";
        bgr: "bgr";
        yuv420: "yuv420";
        gray: "gray";
    }>;
    timestamp: z.ZodNumber;
}, z.core.$strip>;
export declare const BrokerStatusSchema: z.ZodEnum<{
    error: "error";
    streaming: "streaming";
    stopped: "stopped";
    idle: "idle";
    connecting: "connecting";
}>;
export declare const BrokerStatsSchema: z.ZodObject<{
    status: z.ZodEnum<{
        error: "error";
        streaming: "streaming";
        stopped: "stopped";
        idle: "idle";
        connecting: "connecting";
    }>;
    inputFps: z.ZodNumber;
    decodeFps: z.ZodNumber;
    encodedSubscribers: z.ZodNumber;
    decodedSubscribers: z.ZodNumber;
    uptimeMs: z.ZodNumber;
    bitrateKbps: z.ZodNumber;
    idrIntervalMs: z.ZodNumber;
    codec: z.ZodOptional<z.ZodString>;
    totalBytes: z.ZodNumber;
    packetCount: z.ZodNumber;
    rtspClients: z.ZodNumber;
    pipeClients: z.ZodNumber;
    preBufferSec: z.ZodNumber;
    preBufferMs: z.ZodNumber;
    preBufferPackets: z.ZodNumber;
    decoderNodeId: z.ZodNullable<z.ZodString>;
    audio: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        codec: z.ZodString;
        sampleRate: z.ZodNumber;
        channels: z.ZodNumber;
        supported: z.ZodBoolean;
    }, z.core.$strip>>>;
}, z.core.$strip>;
//# sourceMappingURL=streaming-shared.d.ts.map