import * as React from "react";
import { TypedRecord } from "typed-immutable-record";
import { BaseContainer, BaseContainerProps } from "simplr-forms-core";
import { FormError } from "simplr-forms-core/contracts";
export interface SubmitProps extends BaseContainerProps, React.HTMLProps<HTMLButtonElement> {
    /**
     * Disable when form is submitting.
     *
     * Default: false
     * @type {boolean}
     * @memberOf SubmitProps
     */
    disableOnSubmitting?: boolean;
    /**
     * 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
     */
    disableOnWaiting?: boolean;
    /**
     * Disable when all fields are pristine.
     *
     * Default: false
     * @type {boolean}
     * @memberOf SubmitProps
     */
    disableOnPristine?: boolean;
    waiting?: boolean;
}
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> {
    protected OnStoreUpdated(): void;
    protected readonly Disabled: boolean;
    render(): JSX.Element;
}
