/** @packageDocumentation
 * @module Notification
 */
import "./ValidationTextbox.scss";
import * as React from "react";
import type { CommonProps } from "@itwin/core-react";
/** Enum for Input Status used in [[ValidationTextbox]]
 * @alpha
 */
export declare enum InputStatus {
    Valid = 0,
    Invalid = 1
}
/** Property interface for ValidationTextbox
 * @alpha
 */
interface ValidationTextboxProps extends CommonProps {
    /** value to set ValidationTextbox to initially */
    initialValue?: string;
    /** placeholder value to show in gray before anything is entered in */
    placeholder?: string;
    /** triggered when the content of ValidationTextbox is changed. Return true if valid */
    onValueChanged?: (value: string) => InputStatus;
    /** listens for <Enter> key presses */
    onEnterPressed?: () => void;
    /** listens for <Esc> key presses */
    onEscPressed?: () => void;
    /** width of ValidationTextbox, measured in em */
    size?: number;
    /** Error message to display */
    errorText?: string;
    /** Detailed error message to display */
    detailedErrorText?: string;
    /** Content */
    children?: React.ReactNode;
}
interface ValidationTextboxState {
    isValid: boolean;
}
/**
 * Input box that validates text based on provided criteria. Defaults to checking
 * for empty if no method for onValueChanged is provided.
 * @alpha
 */
export declare class ValidationTextbox extends React.PureComponent<ValidationTextboxProps, ValidationTextboxState> {
    constructor(props: ValidationTextboxProps);
    /** @internal */
    render(): React.ReactNode;
    private processValidateText;
    /**
     * Determines if value is valid and resolves any defined functions.
     * Also will show or hide error message if defined.
     * @param event   Button press event that triggers validation
     */
    private _validateText;
    /**
     * Determines if value provided is valid by calling user defined
     * function. If no function is provided, the default criteria for
     * validity is if the value has been defined.
     * @param value   The value provided in textbox
     */
    private _calculateIsValid;
    /** Hides error message */
    private _hideErrorMessage;
    /** Displays error message. */
    private _showErrorMessage;
    /**
     * Manages special key codes by calling user defined functions
     * @param event   Keyup event
     */
    private _handleKeyUp;
}
export {};
//# sourceMappingURL=ValidationTextbox.d.ts.map