/// <reference types="react" />
import { ValidationIssue } from "@appglue/common/dist/Common/IDesignValidationProvider";
import { IDataDefinition } from "@appglue/common/dist/Common/Data/Definitions/IDataDefinition";
import { ButtonControlSize } from "../../Utilities/FormDesignConstants";
import { FormControl } from "../FormControl";
import { IFormActionComponent } from "../../Structure/IFormAction";
export declare enum IXButtonType {
    "BUTTON" = "button",
    "LINK" = "link",
    "IMAGE" = "image"
}
export declare class ButtonFormControl extends FormControl implements IFormActionComponent {
    readonly __type: string;
    type: IXButtonType;
    image?: string;
    label: string;
    size?: ButtonControlSize;
    useNameAsOutcomeName: boolean;
    outcomeName: string;
    onClick: () => void;
    getOutcomeName: () => string;
    render(): JSX.Element | null;
    renderEditUI(): JSX.Element | null;
    getDesignValidationIssues(): ValidationIssue[];
    getRuntimeValidationIssues(): ValidationIssue[];
    getAddedData(): IDataDefinition | IDataDefinition[] | undefined;
    getStorageData(): object;
    setStorageData(data: object): void;
}
