import { BaseInputProperties, TextInputType, TextInputChildren } from '../text-input';
import { ValidationRules } from '../middleware/validation';
export interface ConstrainedInputProperties extends BaseInputProperties {
    /** Validation rules applied to this input */
    rules: ValidationRules;
    /** Callback fired when the input validation changes */
    onValidate?: (valid?: boolean) => void;
    /** Input type, text or email, tel, etc. */
    type?: TextInputType;
}
export interface ConstrainedInputState {
    valid: {
        valid?: boolean;
        message?: string;
    } | undefined;
}
export declare const ConstrainedInput: import("@dojo/framework/core/interfaces").OptionalWNodeFactory<{
    properties: ConstrainedInputProperties & import("@dojo/framework/core/interfaces").WidgetProperties & {
        variant?: "default" | "inherit" | undefined;
    } & import("@dojo/framework/core/middleware/theme").ThemeProperties & import("@dojo/framework/core/interfaces").I18nProperties;
    children: TextInputChildren;
}>;
export default ConstrainedInput;
