const HeadSchema = z.object({
title: z.string().optional(),
dateCreated: z.string().optional(),
dateModified: z.string().optional(),
ownerName: z.string().optional(),
ownerEmail: z.email().optional(),
ownerId: z.string().optional(),
docs: z.string().optional(),
expansionState: z.array(z.number()).optional(),
vertScrollState: z.number().optional(),
windowTop: z.number().optional(),
windowLeft: z.number().optional(),
windowBottom: z.number().optional(),
windowRight: z.number().optional(),
const OutlineSchema: z.ZodType<Outline> = z.lazy(() =>
type: z.string().optional(),
isComment: z.boolean().optional(),
isBreakpoint: z.boolean().optional(),
created: z.string().optional(),
category: z.string().optional(),
description: z.string().optional(),
xmlUrl: z.string().optional(),
htmlUrl: z.string().optional(),
language: z.string().optional(),
title: z.string().optional(),
version: z.string().optional(),
outlines: z.array(OutlineSchema).optional(),
const BodySchema = z.object({
outlines: z.array(OutlineSchema).optional(),
const DocumentSchema = z.object({
head: HeadSchema.optional(),
body: BodySchema.optional(),
Document: DocumentSchema,
type Head = z.infer<typeof HeadSchema>;
type Body = z.infer<typeof BodySchema>;
type Document = z.infer<typeof DocumentSchema>;
export type { Document, Outline, Head, BodySchema };
export type { Body, Document, Head, Opml, Outline };
export { BodySchema, DocumentSchema, HeadSchema, OpmlSchemas, OutlineSchema };
export default OpmlSchemas;