import { PluginContainerData, Link, Gradient } from './common.js';
import { ButtonData_Type, ButtonData_Styles_Background_Type } from './plugin_button.enums.js';
export interface ButtonData {
    /** Styling for the button's container. */
    containerData?: PluginContainerData;
    /** The button type. */
    type: ButtonData_Type;
    /** Styling for the button. */
    styles?: ButtonData_Styles;
    /** The text to display on the button. */
    text?: string;
    /** Button link details. */
    link?: Link;
}
export declare function buttonData_TypeFromJSON(object: any): ButtonData_Type;
export declare function buttonData_TypeToJSON(object: ButtonData_Type): string;
export interface ButtonData_Styles {
    /**
     * Deprecated: Use `borderWidth` and `borderRadius` instead.
     *
     * @deprecated
     */
    border?: ButtonData_Styles_Border;
    /**
     * Deprecated: Use `textColor`, `borderColor` and `backgroundColor` instead.
     *
     * @deprecated
     */
    colors?: ButtonData_Styles_Colors;
    /** Border width in pixels. */
    borderWidth?: number;
    /**
     * Deprecated: Use `borderWidth` for normal/hover states instead.
     *
     * @deprecated
     */
    borderWidthHover?: number;
    /** Border radius in pixels. */
    borderRadius?: number;
    /** Border color as a hexadecimal value. */
    borderColor?: string;
    /** Border color as a hexadecimal value (hover state). */
    borderColorHover?: string;
    /** Text color as a hexadecimal value. */
    textColor?: string;
    /** Text color as a hexadecimal value (hover state). */
    textColorHover?: string;
    /**
     * Deprecated: Use `background` instead.
     *
     * @deprecated
     */
    backgroundColor?: string;
    /**
     * Deprecated: Use `backgroundHover` instead.
     *
     * @deprecated
     */
    backgroundColorHover?: string;
    /** Button size option, one of `SMALL`, `MEDIUM` or `LARGE`. Defaults to `MEDIUM`. */
    buttonSize?: string;
    /** Background styling (color or gradient). */
    background?: ButtonData_Styles_Background;
    /** Background styling for hover state (color or gradient). */
    backgroundHover?: ButtonData_Styles_Background;
}
export interface ButtonData_Styles_Colors {
    /**
     * Deprecated: Use `textColor` in `styles` instead.
     *
     * @deprecated
     */
    text?: string;
    /**
     * Deprecated: Use `borderColor` in `styles` instead.
     *
     * @deprecated
     */
    border?: string;
    /**
     * Deprecated: Use `backgroundColor` in `styles` instead.
     *
     * @deprecated
     */
    background?: string;
}
export interface ButtonData_Styles_Border {
    /**
     * Deprecated: Use `borderWidth` in `styles` instead.
     *
     * @deprecated
     */
    width?: number;
    /**
     * Deprecated: Use `borderRadius` in `styles` instead.
     *
     * @deprecated
     */
    radius?: number;
}
/** Background styling (color or gradient) */
export interface ButtonData_Styles_Background {
    /** Background type. */
    type: ButtonData_Styles_Background_Type;
    /** Background color as a hexadecimal value. */
    color?: string;
    /** Gradient configuration. */
    gradient?: Gradient;
}
export declare function buttonData_Styles_Background_TypeFromJSON(object: any): ButtonData_Styles_Background_Type;
export declare function buttonData_Styles_Background_TypeToJSON(object: ButtonData_Styles_Background_Type): string;
export declare const ButtonData: {
    fromJSON(object: any): ButtonData;
    toJSON(message: ButtonData): unknown;
};
export declare const ButtonData_Styles: {
    fromJSON(object: any): ButtonData_Styles;
    toJSON(message: ButtonData_Styles): unknown;
};
export declare const ButtonData_Styles_Colors: {
    fromJSON(object: any): ButtonData_Styles_Colors;
    toJSON(message: ButtonData_Styles_Colors): unknown;
};
export declare const ButtonData_Styles_Border: {
    fromJSON(object: any): ButtonData_Styles_Border;
    toJSON(message: ButtonData_Styles_Border): unknown;
};
export declare const ButtonData_Styles_Background: {
    fromJSON(object: any): ButtonData_Styles_Background;
    toJSON(message: ButtonData_Styles_Background): unknown;
};
//# sourceMappingURL=plugin_button.d.ts.map