import type React from "react"; import type { ButtonTrackingProps } from "../utils/customAnalytics"; import type { ButtonPresentationProps, EditableNodeAttributes } from "../types"; import type { ResolvedImage } from "../utils/resolveConfig"; import { type StudioBreakpoint } from "../utils/responsivePresentation"; export interface ButtonProps extends EditableNodeAttributes, ButtonPresentationProps, ButtonTrackingProps { content: string; /** Native behavior for button renders. Links and downloads ignore this value. */ type?: "button" | "submit" | "reset"; disabled?: boolean; action?: "navigate" | "scroll" | "openModal" | "externalLink"; target?: string; openInNewTab?: boolean; downloadAsset?: ResolvedImage | null; downloadFilename?: string; className?: string; } type ButtonStyle = React.CSSProperties & { "--studio-button-font-size"?: string; "--studio-button-padding-x"?: string; "--studio-button-padding-y"?: string; } & Partial>; export interface ButtonAppearance { className: string; style: ButtonStyle | undefined; } /** Button colors, sizing, and shape, shared with controls that must look like a Button. */ export declare function useButtonAppearance({ variant, size, fullWidth, color, backgroundColor, borderColor, fontSize, responsiveTypography, fontWeight, lineHeight, letterSpacing, paddingX, paddingY, borderWidth, outlineWidth, shadow, radius, className, }: Omit & { className?: string; }): ButtonAppearance; export declare function Button({ content, type, disabled, variant, size, fullWidth, action, target, openInNewTab, downloadAsset, downloadFilename, eventName, eventCategory, eventParameters, color, backgroundColor, borderColor, fontSize, responsiveTypography, fontWeight, lineHeight, letterSpacing, paddingX, paddingY, borderWidth, outlineWidth, shadow, radius, icon, iconPosition, className, "data-node-id": dataNodeId, }: ButtonProps): import("react/jsx-runtime").JSX.Element; export {}; //# sourceMappingURL=Button.d.ts.map