/// <reference types="react" />
import * as React from "react";
import { TypedRecord } from "typed-immutable-record";
import { BaseContainer, BaseContainerProps } from "simplr-forms";
import { FormError } from "simplr-forms/contracts";
export interface SubmitProps extends BaseContainerProps, React.HTMLProps<HTMLButtonElement> {
    /**
     * Disable when at least one field has error.
     *
     * Default: true
     * @type {boolean}
     * @memberOf SubmitProps
     */
    disableOnError?: boolean;
    /**
     * Disable when at least one field is validating.
     *
     * Default: true
     * @type {boolean}
     * @memberOf SubmitProps
     */
    disableOnBusy?: boolean;
    /**
     * Disable when all fields are pristine.
     *
     * Default: false
     * @type {boolean}
     * @memberOf SubmitProps
     */
    disableOnPristine?: boolean;
    busy?: boolean;
    busyClass?: string;
}
export interface SubmitState {
    Error?: FormError;
    Validating: boolean;
    Submitting: boolean;
    Pristine: boolean;
}
export interface SubmitStateRecord extends TypedRecord<SubmitStateRecord>, SubmitState {
}
export declare class Submit extends BaseContainer<SubmitProps, SubmitStateRecord> {
    static defaultProps: SubmitProps;
    protected OnStoreUpdated(): void;
    protected readonly Disabled: boolean;
    protected readonly Busy: boolean;
    protected readonly InlineStyles: React.CSSProperties;
    render(): JSX.Element;
}
