/**
 * @fileoverview Reusable Zod shapes for Obsidian tool definitions.
 * Target/Section/PatchOptions/ContentType are referenced across multiple tools;
 * keeping them here prevents drift in the discriminator and field descriptions.
 * @module mcp-server/tools/definitions/_shared/schemas
 */
import { z } from '@cyanheads/mcp-ts-core';
/** Where a note lives — vault path, the active file, or a periodic note. */
export declare const TargetSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    type: z.ZodLiteral<"path">;
    path: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"active">;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"periodic">;
    period: z.ZodEnum<{
        daily: "daily";
        weekly: "weekly";
        monthly: "monthly";
        quarterly: "quarterly";
        yearly: "yearly";
    }>;
    date: z.ZodOptional<z.ZodString>;
}, z.core.$strip>], "type">;
/** Sub-document target inside a note. */
export declare const SectionSchema: z.ZodObject<{
    type: z.ZodEnum<{
        heading: "heading";
        block: "block";
        frontmatter: "frontmatter";
    }>;
    target: z.ZodString;
}, z.core.$strip>;
export declare const PatchOptionsSchema: z.ZodOptional<z.ZodObject<{
    createTargetIfMissing: z.ZodDefault<z.ZodBoolean>;
    applyIfContentPreexists: z.ZodDefault<z.ZodBoolean>;
    trimTargetWhitespace: z.ZodDefault<z.ZodBoolean>;
}, z.core.$strip>>;
export declare const ContentTypeSchema: z.ZodDefault<z.ZodEnum<{
    markdown: "markdown";
    json: "json";
}>>;
export type ToolTarget = z.infer<typeof TargetSchema>;
export type ToolSection = z.infer<typeof SectionSchema>;
//# sourceMappingURL=schemas.d.ts.map