import { z } from 'zod';
import { type Theme } from '../../../theme-core/src/index';
export declare const DEFAULT_THEME_PATCH_MAX_OPS = 25;
export declare const DEFAULT_THEME_PATCH_MAX_SERIALIZED_BYTES = 20000;
export declare const DEFAULT_THEME_PATCH_FORBIDDEN_PATH_PREFIXES: readonly ["/axes"];
type JsonPrimitive = string | number | boolean | null;
type JsonValue = JsonPrimitive | JsonValue[] | {
    [key: string]: JsonValue;
};
export declare const ThemePatchOpSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    op: z.ZodLiteral<"add">;
    path: z.ZodString;
    value: z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>;
}, z.core.$strip>, z.ZodObject<{
    op: z.ZodLiteral<"replace">;
    path: z.ZodString;
    value: z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>;
}, z.core.$strip>, z.ZodObject<{
    op: z.ZodLiteral<"remove">;
    path: z.ZodString;
}, z.core.$strip>], "op">;
export type ThemePatchOp = z.infer<typeof ThemePatchOpSchema>;
export declare const ThemePatchOpsSchema: z.ZodArray<z.ZodDiscriminatedUnion<[z.ZodObject<{
    op: z.ZodLiteral<"add">;
    path: z.ZodString;
    value: z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>;
}, z.core.$strip>, z.ZodObject<{
    op: z.ZodLiteral<"replace">;
    path: z.ZodString;
    value: z.ZodType<JsonValue, unknown, z.core.$ZodTypeInternals<JsonValue, unknown>>;
}, z.core.$strip>, z.ZodObject<{
    op: z.ZodLiteral<"remove">;
    path: z.ZodString;
}, z.core.$strip>], "op">>;
export type ThemePatchValidationResult = {
    valid: true;
    theme: Theme;
} | {
    valid: false;
    error: string;
};
export declare function validateThemePatch(args: {
    baseTheme: Theme;
    ops: ThemePatchOp[];
    forbiddenPathPrefixes?: string[];
    maxOps?: number;
    maxSerializedBytes?: number;
    validateRuntime?: boolean;
}): ThemePatchValidationResult;
export {};
