import { z } from 'zod';
export declare const partykitRoom = "epic-web-presence";
export declare const partykitBaseUrl = "https://epic-web-presence.kentcdodds.partykit.dev/parties/main/epic-web-presence";
export declare const UserSchema: z.ZodObject<{
    id: z.ZodString;
    avatarUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
    location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
        workshopTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        exercise: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            type: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"problem">, z.ZodLiteral<"solution">]>>>;
            exerciseNumber: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            stepNumber: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
        }, "strip", z.ZodTypeAny, {
            type?: "problem" | "solution" | null | undefined;
            exerciseNumber?: number | null | undefined;
            stepNumber?: number | null | undefined;
        }, {
            type?: "problem" | "solution" | null | undefined;
            exerciseNumber?: number | null | undefined;
            stepNumber?: number | null | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        workshopTitle?: string | null | undefined;
        exercise?: {
            type?: "problem" | "solution" | null | undefined;
            exerciseNumber?: number | null | undefined;
            stepNumber?: number | null | undefined;
        } | null | undefined;
    }, {
        workshopTitle?: string | null | undefined;
        exercise?: {
            type?: "problem" | "solution" | null | undefined;
            exerciseNumber?: number | null | undefined;
            stepNumber?: number | null | undefined;
        } | null | undefined;
    }>>>;
}, "strip", z.ZodTypeAny, {
    id: string;
    avatarUrl?: string | null | undefined;
    name?: string | null | undefined;
    location?: {
        workshopTitle?: string | null | undefined;
        exercise?: {
            type?: "problem" | "solution" | null | undefined;
            exerciseNumber?: number | null | undefined;
            stepNumber?: number | null | undefined;
        } | null | undefined;
    } | null | undefined;
}, {
    id: string;
    avatarUrl?: string | null | undefined;
    name?: string | null | undefined;
    location?: {
        workshopTitle?: string | null | undefined;
        exercise?: {
            type?: "problem" | "solution" | null | undefined;
            exerciseNumber?: number | null | undefined;
            stepNumber?: number | null | undefined;
        } | null | undefined;
    } | null | undefined;
}>;
export declare const MessageSchema: z.ZodUnion<[z.ZodUnion<[z.ZodObject<{
    type: z.ZodLiteral<"remove-user">;
    payload: z.ZodObject<{
        id: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        id: string;
    }, {
        id: string;
    }>;
}, "strip", z.ZodTypeAny, {
    type: "remove-user";
    payload: {
        id: string;
    };
}, {
    type: "remove-user";
    payload: {
        id: string;
    };
}>, z.ZodObject<{
    type: z.ZodLiteral<"add-user">;
    payload: z.ZodObject<{
        id: z.ZodString;
        avatarUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            workshopTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            exercise: z.ZodOptional<z.ZodNullable<z.ZodObject<{
                type: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"problem">, z.ZodLiteral<"solution">]>>>;
                exerciseNumber: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
                stepNumber: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            }, "strip", z.ZodTypeAny, {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            }, {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            }>>>;
        }, "strip", z.ZodTypeAny, {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        }, {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        avatarUrl?: string | null | undefined;
        name?: string | null | undefined;
        location?: {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
    }, {
        id: string;
        avatarUrl?: string | null | undefined;
        name?: string | null | undefined;
        location?: {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
    }>;
}, "strip", z.ZodTypeAny, {
    type: "add-user";
    payload: {
        id: string;
        avatarUrl?: string | null | undefined;
        name?: string | null | undefined;
        location?: {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
    };
}, {
    type: "add-user";
    payload: {
        id: string;
        avatarUrl?: string | null | undefined;
        name?: string | null | undefined;
        location?: {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
    };
}>]>, z.ZodObject<{
    type: z.ZodLiteral<"presence">;
    payload: z.ZodObject<{
        users: z.ZodArray<z.ZodObject<{
            id: z.ZodString;
            avatarUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
                workshopTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
                exercise: z.ZodOptional<z.ZodNullable<z.ZodObject<{
                    type: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"problem">, z.ZodLiteral<"solution">]>>>;
                    exerciseNumber: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
                    stepNumber: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
                }, "strip", z.ZodTypeAny, {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                }, {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                }>>>;
            }, "strip", z.ZodTypeAny, {
                workshopTitle?: string | null | undefined;
                exercise?: {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                } | null | undefined;
            }, {
                workshopTitle?: string | null | undefined;
                exercise?: {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                } | null | undefined;
            }>>>;
        }, "strip", z.ZodTypeAny, {
            id: string;
            avatarUrl?: string | null | undefined;
            name?: string | null | undefined;
            location?: {
                workshopTitle?: string | null | undefined;
                exercise?: {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                } | null | undefined;
            } | null | undefined;
        }, {
            id: string;
            avatarUrl?: string | null | undefined;
            name?: string | null | undefined;
            location?: {
                workshopTitle?: string | null | undefined;
                exercise?: {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                } | null | undefined;
            } | null | undefined;
        }>, "many">;
    }, "strip", z.ZodTypeAny, {
        users: {
            id: string;
            avatarUrl?: string | null | undefined;
            name?: string | null | undefined;
            location?: {
                workshopTitle?: string | null | undefined;
                exercise?: {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                } | null | undefined;
            } | null | undefined;
        }[];
    }, {
        users: {
            id: string;
            avatarUrl?: string | null | undefined;
            name?: string | null | undefined;
            location?: {
                workshopTitle?: string | null | undefined;
                exercise?: {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                } | null | undefined;
            } | null | undefined;
        }[];
    }>;
}, "strip", z.ZodTypeAny, {
    type: "presence";
    payload: {
        users: {
            id: string;
            avatarUrl?: string | null | undefined;
            name?: string | null | undefined;
            location?: {
                workshopTitle?: string | null | undefined;
                exercise?: {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                } | null | undefined;
            } | null | undefined;
        }[];
    };
}, {
    type: "presence";
    payload: {
        users: {
            id: string;
            avatarUrl?: string | null | undefined;
            name?: string | null | undefined;
            location?: {
                workshopTitle?: string | null | undefined;
                exercise?: {
                    type?: "problem" | "solution" | null | undefined;
                    exerciseNumber?: number | null | undefined;
                    stepNumber?: number | null | undefined;
                } | null | undefined;
            } | null | undefined;
        }[];
    };
}>]>;
export type Message = z.infer<typeof MessageSchema>;
export type User = z.infer<typeof UserSchema>;
export declare const PresenceSchema: z.ZodObject<{
    users: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        avatarUrl: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        name: z.ZodOptional<z.ZodNullable<z.ZodString>>;
        location: z.ZodOptional<z.ZodNullable<z.ZodObject<{
            workshopTitle: z.ZodOptional<z.ZodNullable<z.ZodString>>;
            exercise: z.ZodOptional<z.ZodNullable<z.ZodObject<{
                type: z.ZodOptional<z.ZodNullable<z.ZodUnion<[z.ZodLiteral<"problem">, z.ZodLiteral<"solution">]>>>;
                exerciseNumber: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
                stepNumber: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
            }, "strip", z.ZodTypeAny, {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            }, {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            }>>>;
        }, "strip", z.ZodTypeAny, {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        }, {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        id: string;
        avatarUrl?: string | null | undefined;
        name?: string | null | undefined;
        location?: {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
    }, {
        id: string;
        avatarUrl?: string | null | undefined;
        name?: string | null | undefined;
        location?: {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
    }>, "many">;
}, "strip", z.ZodTypeAny, {
    users: {
        id: string;
        avatarUrl?: string | null | undefined;
        name?: string | null | undefined;
        location?: {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
    }[];
}, {
    users: {
        id: string;
        avatarUrl?: string | null | undefined;
        name?: string | null | undefined;
        location?: {
            workshopTitle?: string | null | undefined;
            exercise?: {
                type?: "problem" | "solution" | null | undefined;
                exerciseNumber?: number | null | undefined;
                stepNumber?: number | null | undefined;
            } | null | undefined;
        } | null | undefined;
    }[];
}>;
