import { ZodSchemaType } from '@contractspec/lib.schema';
import * as z from 'zod';
declare const ContractPatchAddSchema: z.ZodObject<{
    path: z.ZodString;
    value: z.ZodUnknown;
}, z.core.$strip>;
export declare const ContractPatchAddModel: ZodSchemaType<z.ZodObject<{
    path: z.ZodString;
    value: z.ZodUnknown;
}, z.core.$strip>>;
export type ContractPatchAdd = z.infer<typeof ContractPatchAddSchema>;
declare const ContractPatchUpdateSchema: z.ZodObject<{
    path: z.ZodString;
    value: z.ZodUnknown;
}, z.core.$strip>;
export declare const ContractPatchUpdateModel: ZodSchemaType<z.ZodObject<{
    path: z.ZodString;
    value: z.ZodUnknown;
}, z.core.$strip>>;
export type ContractPatchUpdate = z.infer<typeof ContractPatchUpdateSchema>;
declare const ContractPatchRemoveSchema: z.ZodObject<{
    path: z.ZodString;
}, z.core.$strip>;
export declare const ContractPatchRemoveModel: ZodSchemaType<z.ZodObject<{
    path: z.ZodString;
}, z.core.$strip>>;
export type ContractPatchRemove = z.infer<typeof ContractPatchRemoveSchema>;
declare const ContractSpecOverlaySchema: z.ZodObject<{
    adds: z.ZodOptional<z.ZodArray<z.ZodObject<{
        path: z.ZodString;
        value: z.ZodUnknown;
    }, z.core.$strip>>>;
    updates: z.ZodOptional<z.ZodArray<z.ZodObject<{
        path: z.ZodString;
        value: z.ZodUnknown;
    }, z.core.$strip>>>;
    removes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        path: z.ZodString;
    }, z.core.$strip>>>;
}, z.core.$strip>;
export declare const ContractSpecOverlayModel: ZodSchemaType<z.ZodObject<{
    adds: z.ZodOptional<z.ZodArray<z.ZodObject<{
        path: z.ZodString;
        value: z.ZodUnknown;
    }, z.core.$strip>>>;
    updates: z.ZodOptional<z.ZodArray<z.ZodObject<{
        path: z.ZodString;
        value: z.ZodUnknown;
    }, z.core.$strip>>>;
    removes: z.ZodOptional<z.ZodArray<z.ZodObject<{
        path: z.ZodString;
    }, z.core.$strip>>>;
}, z.core.$strip>>;
export type ContractSpecOverlay = z.infer<typeof ContractSpecOverlaySchema>;
declare const ContractSpecPatchSchema: z.ZodObject<{
    overlay: z.ZodObject<{
        adds: z.ZodOptional<z.ZodArray<z.ZodObject<{
            path: z.ZodString;
            value: z.ZodUnknown;
        }, z.core.$strip>>>;
        updates: z.ZodOptional<z.ZodArray<z.ZodObject<{
            path: z.ZodString;
            value: z.ZodUnknown;
        }, z.core.$strip>>>;
        removes: z.ZodOptional<z.ZodArray<z.ZodObject<{
            path: z.ZodString;
        }, z.core.$strip>>>;
    }, z.core.$strip>;
}, z.core.$strip>;
export declare const ContractSpecPatchModel: ZodSchemaType<z.ZodObject<{
    overlay: z.ZodObject<{
        adds: z.ZodOptional<z.ZodArray<z.ZodObject<{
            path: z.ZodString;
            value: z.ZodUnknown;
        }, z.core.$strip>>>;
        updates: z.ZodOptional<z.ZodArray<z.ZodObject<{
            path: z.ZodString;
            value: z.ZodUnknown;
        }, z.core.$strip>>>;
        removes: z.ZodOptional<z.ZodArray<z.ZodObject<{
            path: z.ZodString;
        }, z.core.$strip>>>;
    }, z.core.$strip>;
}, z.core.$strip>>;
export type ContractSpecPatch = z.infer<typeof ContractSpecPatchSchema>;
export {};
