import { z } from 'zod';
export declare const coEventsSchema: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
    type: z.ZodLiteral<"init">;
    data: z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
        type: z.ZodLiteral<"authorization">;
        state: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        type: "authorization";
        state: string;
    }, {
        type: "authorization";
        state: string;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"ServiceStart">;
        serviceId: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        type: "ServiceStart";
        serviceId: number;
    }, {
        type: "ServiceStart";
        serviceId: number;
    }>, z.ZodObject<{
        type: z.ZodLiteral<"ServiceStop">;
        serviceId: z.ZodNumber;
    }, "strip", z.ZodTypeAny, {
        type: "ServiceStop";
        serviceId: number;
    }, {
        type: "ServiceStop";
        serviceId: number;
    }>]>;
}, "strip", z.ZodTypeAny, {
    type: "init";
    data: {
        type: "authorization";
        state: string;
    } | {
        type: "ServiceStart";
        serviceId: number;
    } | {
        type: "ServiceStop";
        serviceId: number;
    };
}, {
    type: "init";
    data: {
        type: "authorization";
        state: string;
    } | {
        type: "ServiceStart";
        serviceId: number;
    } | {
        type: "ServiceStop";
        serviceId: number;
    };
}>, z.ZodObject<{
    type: z.ZodLiteral<"authorization">;
    state: z.ZodString;
}, "strip", z.ZodTypeAny, {
    type: "authorization";
    state: string;
}, {
    type: "authorization";
    state: string;
}>, z.ZodObject<{
    type: z.ZodLiteral<"ServiceStart">;
    serviceId: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    type: "ServiceStart";
    serviceId: number;
}, {
    type: "ServiceStart";
    serviceId: number;
}>, z.ZodObject<{
    type: z.ZodLiteral<"ServiceStop">;
    serviceId: z.ZodNumber;
}, "strip", z.ZodTypeAny, {
    type: "ServiceStop";
    serviceId: number;
}, {
    type: "ServiceStop";
    serviceId: number;
}>]>;
export type TCamOverlayEvent = z.infer<typeof coEventsSchema>;
export type TCamOverlayEventType = TCamOverlayEvent['type'];
export type TCamOverlayEventOfType<T extends TCamOverlayEventType> = Extract<TCamOverlayEvent, {
    type: T;
}>;
