/// <reference types="react" />
import * as React from "react";
import { TypedRecord } from "typed-immutable-record";
import { BaseContainer, BaseContainerProps } from "simplr-forms";
export interface BaseFormButtonProps extends BaseContainerProps, React.HTMLProps<HTMLButtonElement> {
    disableOnError?: boolean;
    disableOnBusy?: boolean;
    disableOnPristine?: boolean;
    busy?: boolean;
    disabled?: boolean;
    busyClassName?: string;
}
export interface BaseFormButtonState {
    HasError: boolean;
    Validating: boolean;
    Submitting: boolean;
    Pristine: boolean;
    Disabled: boolean;
}
export interface BaseFormButtonStateRecord extends TypedRecord<BaseFormButtonStateRecord>, BaseFormButtonState {
}
export declare abstract class BaseFormButton<TProps extends BaseFormButtonProps, TState extends BaseFormButtonStateRecord> extends BaseContainer<TProps, TState> {
    static defaultProps: BaseFormButtonProps;
    protected OnStoreUpdated(): void;
    protected readonly Disabled: boolean;
    protected readonly Busy: boolean;
    protected readonly InlineStyles: React.CSSProperties;
    protected readonly ClassName: string | undefined;
    abstract render(): JSX.Element | null;
}
