import { z } from "zod"; import type { IActionButtonStyle } from "@/types/elemental.types"; export declare const buttonSchema: z.ZodObject<{ label: z.ZodString; link: z.ZodOptional; alignment: z.ZodEnum<["left", "center", "right"]>; backgroundColor: z.ZodString; borderRadius: z.ZodNumber; paddingVertical: z.ZodNumber; paddingHorizontal: z.ZodNumber; fontSize: z.ZodOptional>; fontWeight: z.ZodEnum<["normal", "bold"]>; fontStyle: z.ZodEnum<["normal", "italic"]>; isUnderline: z.ZodBoolean; isStrike: z.ZodBoolean; disableTracking: z.ZodOptional; actionStyle: z.ZodOptional>; textColor: z.ZodOptional; borderColor: z.ZodOptional; }, "strip", z.ZodTypeAny, { backgroundColor: string; borderRadius: number; paddingVertical: number; paddingHorizontal: number; label: string; alignment: "left" | "center" | "right"; fontWeight: "normal" | "bold"; fontStyle: "italic" | "normal"; isUnderline: boolean; isStrike: boolean; link?: string | undefined; fontSize?: number | null | undefined; borderColor?: string | undefined; textColor?: string | undefined; disableTracking?: boolean | undefined; actionStyle?: "button" | "secondary" | "tertiary" | "link" | undefined; }, { backgroundColor: string; borderRadius: number; paddingVertical: number; paddingHorizontal: number; label: string; alignment: "left" | "center" | "right"; fontWeight: "normal" | "bold"; fontStyle: "italic" | "normal"; isUnderline: boolean; isStrike: boolean; link?: string | undefined; fontSize?: number | null | undefined; borderColor?: string | undefined; textColor?: string | undefined; disableTracking?: boolean | undefined; actionStyle?: "button" | "secondary" | "tertiary" | "link" | undefined; }>; export interface ButtonProps { label: string; link?: string; alignment: "left" | "center" | "right"; backgroundColor: string; borderRadius: number; paddingVertical: number; paddingHorizontal: number; /** * Label size in px. Null falls back to the document-level base font size, * then the renderer's 14px default. */ fontSize?: number | null; fontWeight: "normal" | "bold"; fontStyle: "normal" | "italic"; isUnderline: boolean; isStrike: boolean; /** When true, click-through tracking is disabled for this action button. */ disableTracking?: boolean; /** * Elemental `action.style`. Carried on the node rather than inferred from the colors, * because `secondary` and `tertiary` are drawn from the same accent and so are * indistinguishable by color alone. */ actionStyle?: IActionButtonStyle; /** @deprecated Legacy property - not supported by Elemental */ textColor?: string; /** @deprecated Legacy property - not supported by Elemental */ borderColor?: string; }