import z from 'zod';
export declare const jsonMessage: z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
    id: z.ZodString;
    from: z.ZodOptional<z.ZodString>;
    to: z.ZodOptional<z.ZodString>;
    timestamp: z.ZodNumber;
}, {
    text: z.ZodObject<{
        body: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        body: string;
    }, {
        body: string;
    }>;
}>, {
    type: z.ZodLiteral<"text">;
}>, "strip", z.ZodTypeAny, {
    id: string;
    type: "text";
    timestamp: number;
    text: {
        body: string;
    };
    from?: string | undefined;
    to?: string | undefined;
}, {
    id: string;
    type: "text";
    timestamp: number;
    text: {
        body: string;
    };
    from?: string | undefined;
    to?: string | undefined;
}>, z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
    id: z.ZodString;
    from: z.ZodOptional<z.ZodString>;
    to: z.ZodOptional<z.ZodString>;
    timestamp: z.ZodNumber;
}, {
    templateName: z.ZodString;
}>, {
    type: z.ZodLiteral<"template">;
}>, "strip", z.ZodTypeAny, {
    id: string;
    type: "template";
    timestamp: number;
    templateName: string;
    from?: string | undefined;
    to?: string | undefined;
}, {
    id: string;
    type: "template";
    timestamp: number;
    templateName: string;
    from?: string | undefined;
    to?: string | undefined;
}>]>;
export type JsonMessage = z.infer<typeof jsonMessage>;
export declare const messageSchema: z.ZodObject<{
    id: z.ZodString;
    wamId: z.ZodString;
    message: z.ZodDiscriminatedUnion<"type", [z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
        id: z.ZodString;
        from: z.ZodOptional<z.ZodString>;
        to: z.ZodOptional<z.ZodString>;
        timestamp: z.ZodNumber;
    }, {
        text: z.ZodObject<{
            body: z.ZodString;
        }, "strip", z.ZodTypeAny, {
            body: string;
        }, {
            body: string;
        }>;
    }>, {
        type: z.ZodLiteral<"text">;
    }>, "strip", z.ZodTypeAny, {
        id: string;
        type: "text";
        timestamp: number;
        text: {
            body: string;
        };
        from?: string | undefined;
        to?: string | undefined;
    }, {
        id: string;
        type: "text";
        timestamp: number;
        text: {
            body: string;
        };
        from?: string | undefined;
        to?: string | undefined;
    }>, z.ZodObject<z.objectUtil.extendShape<z.objectUtil.extendShape<{
        id: z.ZodString;
        from: z.ZodOptional<z.ZodString>;
        to: z.ZodOptional<z.ZodString>;
        timestamp: z.ZodNumber;
    }, {
        templateName: z.ZodString;
    }>, {
        type: z.ZodLiteral<"template">;
    }>, "strip", z.ZodTypeAny, {
        id: string;
        type: "template";
        timestamp: number;
        templateName: string;
        from?: string | undefined;
        to?: string | undefined;
    }, {
        id: string;
        type: "template";
        timestamp: number;
        templateName: string;
        from?: string | undefined;
        to?: string | undefined;
    }>]>;
    state: z.ZodNativeEnum<{
        SENT: "SENT";
        RECEIVED: "RECEIVED";
        SEEN: "SEEN";
    }>;
    created_at: z.ZodDate;
    updated_at: z.ZodDate;
}, "strip", z.ZodTypeAny, {
    message: {
        id: string;
        type: "text";
        timestamp: number;
        text: {
            body: string;
        };
        from?: string | undefined;
        to?: string | undefined;
    } | {
        id: string;
        type: "template";
        timestamp: number;
        templateName: string;
        from?: string | undefined;
        to?: string | undefined;
    };
    id: string;
    created_at: Date;
    updated_at: Date;
    state: "SENT" | "RECEIVED" | "SEEN";
    wamId: string;
}, {
    message: {
        id: string;
        type: "text";
        timestamp: number;
        text: {
            body: string;
        };
        from?: string | undefined;
        to?: string | undefined;
    } | {
        id: string;
        type: "template";
        timestamp: number;
        templateName: string;
        from?: string | undefined;
        to?: string | undefined;
    };
    id: string;
    created_at: Date;
    updated_at: Date;
    state: "SENT" | "RECEIVED" | "SEEN";
    wamId: string;
}>;
