import type * as React from 'react';
import { TextInputProps } from './TextInput';
/**
 * Function for taking raw input and formatting it for a label mask. Passing `true` to
 * `valueOnly` will return just the formatted value entered.
 */
export type MaskFunction = (rawInput: string, valueOnly?: boolean) => string;
/**
 * Regular expressions for matching commonly used masks, ensure capture groups are
 * set for each set of items that are separated by a delimiter, delimiters are
 * optional and so should be shown as well with the `?` optional flag.
 */
export declare const RE_DATE: RegExp;
export declare const RE_PHONE: RegExp;
export declare const RE_SSN: RegExp;
export declare const RE_ZIP: RegExp;
export declare const RE_CURRENCY: RegExp;
/**
 * The date mask automatically pads months and days that are one digit
 */
export declare const DATE_MASK: MaskFunction;
/**
 * Formatting for US phone numbers
 */
export declare const PHONE_MASK: MaskFunction;
/**
 * Formatting for US Postal codes, this could be expanded to allow for 9 digit numbers
 */
export declare const ZIP_MASK: MaskFunction;
/**
 * Formatting for social security numbers.
 */
export declare const SSN_MASK: MaskFunction;
/**
 * Does the same thing as SSN_MASK except that it obfuscates the first five digits
 */
export declare const SSN_MASK_OBFUSCATED: MaskFunction;
/**
 * Currency mask is a little different, we need to modify the incoming content to strip
 * out any commas or dollar signs before evaluating it via the Intl.NumberFormat function.
 */
export declare const CURRENCY_MASK: (rawInput?: string, valueOnly?: boolean) => string;
export declare function useLabelMask(maskFn: MaskFunction, originalInputProps: TextInputProps): {
    labelMask: import("react/jsx-runtime").JSX.Element;
    inputProps: {
        defaultValue: any;
        value: string;
        onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;
        onFocus: (e: React.FocusEvent<HTMLInputElement>) => void;
        onBlur: (e: React.FocusEvent<HTMLInputElement>) => void;
        type: string;
        inputMode: "numeric";
        'aria-describedby': string;
        form?: string | undefined;
        slot?: string | undefined;
        style?: React.CSSProperties | undefined;
        title?: string | undefined;
        min?: number | string | undefined;
        prefix?: string | undefined;
        className?: string | undefined;
        children?: React.ReactNode | undefined;
        id?: string | undefined;
        suppressHydrationWarning?: boolean | undefined;
        color?: string | undefined;
        height?: number | string | undefined;
        lang?: string | undefined;
        max?: number | string | undefined;
        name?: string | undefined;
        width?: number | string | undefined;
        role?: React.AriaRole | undefined;
        tabIndex?: number | undefined;
        "aria-activedescendant"?: string | undefined;
        "aria-atomic"?: (boolean | "true" | "false") | undefined;
        "aria-autocomplete"?: "none" | "inline" | "list" | "both" | undefined;
        "aria-braillelabel"?: string | undefined;
        "aria-brailleroledescription"?: string | undefined;
        "aria-busy"?: (boolean | "true" | "false") | undefined;
        "aria-checked"?: boolean | "false" | "mixed" | "true" | undefined;
        "aria-colcount"?: number | undefined;
        "aria-colindex"?: number | undefined;
        "aria-colindextext"?: string | undefined;
        "aria-colspan"?: number | undefined;
        "aria-controls"?: string | undefined;
        "aria-current"?: boolean | "false" | "true" | "page" | "step" | "location" | "date" | "time" | undefined;
        "aria-description"?: string | undefined;
        "aria-details"?: string | undefined;
        "aria-disabled"?: (boolean | "true" | "false") | undefined;
        "aria-dropeffect"?: "none" | "copy" | "execute" | "link" | "move" | "popup" | undefined;
        "aria-errormessage"?: string | undefined;
        "aria-expanded"?: (boolean | "true" | "false") | undefined;
        "aria-flowto"?: string | undefined;
        "aria-grabbed"?: (boolean | "true" | "false") | undefined;
        "aria-haspopup"?: boolean | "false" | "true" | "menu" | "listbox" | "tree" | "grid" | "dialog" | undefined;
        "aria-hidden"?: (boolean | "true" | "false") | undefined;
        "aria-invalid"?: boolean | "false" | "true" | "grammar" | "spelling" | undefined;
        "aria-keyshortcuts"?: string | undefined;
        "aria-label"?: string | undefined;
        "aria-labelledby"?: string | undefined;
        "aria-level"?: number | undefined;
        "aria-live"?: "off" | "assertive" | "polite" | undefined;
        "aria-modal"?: (boolean | "true" | "false") | undefined;
        "aria-multiline"?: (boolean | "true" | "false") | undefined;
        "aria-multiselectable"?: (boolean | "true" | "false") | undefined;
        "aria-orientation"?: "horizontal" | "vertical" | undefined;
        "aria-owns"?: string | undefined;
        "aria-placeholder"?: string | undefined;
        "aria-posinset"?: number | undefined;
        "aria-pressed"?: boolean | "false" | "mixed" | "true" | undefined;
        "aria-readonly"?: (boolean | "true" | "false") | undefined;
        "aria-relevant"?: "additions" | "additions removals" | "additions text" | "all" | "removals" | "removals additions" | "removals text" | "text" | "text additions" | "text removals" | undefined;
        "aria-required"?: (boolean | "true" | "false") | undefined;
        "aria-roledescription"?: string | undefined;
        "aria-rowcount"?: number | undefined;
        "aria-rowindex"?: number | undefined;
        "aria-rowindextext"?: string | undefined;
        "aria-rowspan"?: number | undefined;
        "aria-selected"?: (boolean | "true" | "false") | undefined;
        "aria-setsize"?: number | undefined;
        "aria-sort"?: "none" | "ascending" | "descending" | "other" | undefined;
        "aria-valuemax"?: number | undefined;
        "aria-valuemin"?: number | undefined;
        "aria-valuenow"?: number | undefined;
        "aria-valuetext"?: string | undefined;
        dangerouslySetInnerHTML?: {
            __html: string | TrustedHTML;
        } | undefined;
        onCopy?: React.ClipboardEventHandler<HTMLInputElement>;
        onCopyCapture?: React.ClipboardEventHandler<HTMLInputElement>;
        onCut?: React.ClipboardEventHandler<HTMLInputElement>;
        onCutCapture?: React.ClipboardEventHandler<HTMLInputElement>;
        onPaste?: React.ClipboardEventHandler<HTMLInputElement>;
        onPasteCapture?: React.ClipboardEventHandler<HTMLInputElement>;
        onCompositionEnd?: React.CompositionEventHandler<HTMLInputElement>;
        onCompositionEndCapture?: React.CompositionEventHandler<HTMLInputElement>;
        onCompositionStart?: React.CompositionEventHandler<HTMLInputElement>;
        onCompositionStartCapture?: React.CompositionEventHandler<HTMLInputElement>;
        onCompositionUpdate?: React.CompositionEventHandler<HTMLInputElement>;
        onCompositionUpdateCapture?: React.CompositionEventHandler<HTMLInputElement>;
        onFocusCapture?: React.FocusEventHandler<HTMLInputElement>;
        onBlurCapture?: React.FocusEventHandler<HTMLInputElement>;
        onChangeCapture?: React.FormEventHandler<HTMLInputElement>;
        onBeforeInput?: React.FormEventHandler<HTMLInputElement>;
        onBeforeInputCapture?: React.FormEventHandler<HTMLInputElement>;
        onInput?: React.FormEventHandler<HTMLInputElement>;
        onInputCapture?: React.FormEventHandler<HTMLInputElement>;
        onReset?: React.FormEventHandler<HTMLInputElement>;
        onResetCapture?: React.FormEventHandler<HTMLInputElement>;
        onSubmit?: React.FormEventHandler<HTMLInputElement>;
        onSubmitCapture?: React.FormEventHandler<HTMLInputElement>;
        onInvalid?: React.FormEventHandler<HTMLInputElement>;
        onInvalidCapture?: React.FormEventHandler<HTMLInputElement>;
        onLoad?: React.ReactEventHandler<HTMLInputElement>;
        onLoadCapture?: React.ReactEventHandler<HTMLInputElement>;
        onError?: React.ReactEventHandler<HTMLInputElement>;
        onErrorCapture?: React.ReactEventHandler<HTMLInputElement>;
        onKeyDown?: React.KeyboardEventHandler<HTMLInputElement>;
        onKeyDownCapture?: React.KeyboardEventHandler<HTMLInputElement>;
        onKeyPress?: React.KeyboardEventHandler<HTMLInputElement>;
        onKeyPressCapture?: React.KeyboardEventHandler<HTMLInputElement>;
        onKeyUp?: React.KeyboardEventHandler<HTMLInputElement>;
        onKeyUpCapture?: React.KeyboardEventHandler<HTMLInputElement>;
        onAbort?: React.ReactEventHandler<HTMLInputElement>;
        onAbortCapture?: React.ReactEventHandler<HTMLInputElement>;
        onCanPlay?: React.ReactEventHandler<HTMLInputElement>;
        onCanPlayCapture?: React.ReactEventHandler<HTMLInputElement>;
        onCanPlayThrough?: React.ReactEventHandler<HTMLInputElement>;
        onCanPlayThroughCapture?: React.ReactEventHandler<HTMLInputElement>;
        onDurationChange?: React.ReactEventHandler<HTMLInputElement>;
        onDurationChangeCapture?: React.ReactEventHandler<HTMLInputElement>;
        onEmptied?: React.ReactEventHandler<HTMLInputElement>;
        onEmptiedCapture?: React.ReactEventHandler<HTMLInputElement>;
        onEncrypted?: React.ReactEventHandler<HTMLInputElement>;
        onEncryptedCapture?: React.ReactEventHandler<HTMLInputElement>;
        onEnded?: React.ReactEventHandler<HTMLInputElement>;
        onEndedCapture?: React.ReactEventHandler<HTMLInputElement>;
        onLoadedData?: React.ReactEventHandler<HTMLInputElement>;
        onLoadedDataCapture?: React.ReactEventHandler<HTMLInputElement>;
        onLoadedMetadata?: React.ReactEventHandler<HTMLInputElement>;
        onLoadedMetadataCapture?: React.ReactEventHandler<HTMLInputElement>;
        onLoadStart?: React.ReactEventHandler<HTMLInputElement>;
        onLoadStartCapture?: React.ReactEventHandler<HTMLInputElement>;
        onPause?: React.ReactEventHandler<HTMLInputElement>;
        onPauseCapture?: React.ReactEventHandler<HTMLInputElement>;
        onPlay?: React.ReactEventHandler<HTMLInputElement>;
        onPlayCapture?: React.ReactEventHandler<HTMLInputElement>;
        onPlaying?: React.ReactEventHandler<HTMLInputElement>;
        onPlayingCapture?: React.ReactEventHandler<HTMLInputElement>;
        onProgress?: React.ReactEventHandler<HTMLInputElement>;
        onProgressCapture?: React.ReactEventHandler<HTMLInputElement>;
        onRateChange?: React.ReactEventHandler<HTMLInputElement>;
        onRateChangeCapture?: React.ReactEventHandler<HTMLInputElement>;
        onResize?: React.ReactEventHandler<HTMLInputElement>;
        onResizeCapture?: React.ReactEventHandler<HTMLInputElement>;
        onSeeked?: React.ReactEventHandler<HTMLInputElement>;
        onSeekedCapture?: React.ReactEventHandler<HTMLInputElement>;
        onSeeking?: React.ReactEventHandler<HTMLInputElement>;
        onSeekingCapture?: React.ReactEventHandler<HTMLInputElement>;
        onStalled?: React.ReactEventHandler<HTMLInputElement>;
        onStalledCapture?: React.ReactEventHandler<HTMLInputElement>;
        onSuspend?: React.ReactEventHandler<HTMLInputElement>;
        onSuspendCapture?: React.ReactEventHandler<HTMLInputElement>;
        onTimeUpdate?: React.ReactEventHandler<HTMLInputElement>;
        onTimeUpdateCapture?: React.ReactEventHandler<HTMLInputElement>;
        onVolumeChange?: React.ReactEventHandler<HTMLInputElement>;
        onVolumeChangeCapture?: React.ReactEventHandler<HTMLInputElement>;
        onWaiting?: React.ReactEventHandler<HTMLInputElement>;
        onWaitingCapture?: React.ReactEventHandler<HTMLInputElement>;
        onAuxClick?: React.MouseEventHandler<HTMLInputElement>;
        onAuxClickCapture?: React.MouseEventHandler<HTMLInputElement>;
        onClick?: React.MouseEventHandler<HTMLInputElement>;
        onClickCapture?: React.MouseEventHandler<HTMLInputElement>;
        onContextMenu?: React.MouseEventHandler<HTMLInputElement>;
        onContextMenuCapture?: React.MouseEventHandler<HTMLInputElement>;
        onDoubleClick?: React.MouseEventHandler<HTMLInputElement>;
        onDoubleClickCapture?: React.MouseEventHandler<HTMLInputElement>;
        onDrag?: React.DragEventHandler<HTMLInputElement>;
        onDragCapture?: React.DragEventHandler<HTMLInputElement>;
        onDragEnd?: React.DragEventHandler<HTMLInputElement>;
        onDragEndCapture?: React.DragEventHandler<HTMLInputElement>;
        onDragEnter?: React.DragEventHandler<HTMLInputElement>;
        onDragEnterCapture?: React.DragEventHandler<HTMLInputElement>;
        onDragExit?: React.DragEventHandler<HTMLInputElement>;
        onDragExitCapture?: React.DragEventHandler<HTMLInputElement>;
        onDragLeave?: React.DragEventHandler<HTMLInputElement>;
        onDragLeaveCapture?: React.DragEventHandler<HTMLInputElement>;
        onDragOver?: React.DragEventHandler<HTMLInputElement>;
        onDragOverCapture?: React.DragEventHandler<HTMLInputElement>;
        onDragStart?: React.DragEventHandler<HTMLInputElement>;
        onDragStartCapture?: React.DragEventHandler<HTMLInputElement>;
        onDrop?: React.DragEventHandler<HTMLInputElement>;
        onDropCapture?: React.DragEventHandler<HTMLInputElement>;
        onMouseDown?: React.MouseEventHandler<HTMLInputElement>;
        onMouseDownCapture?: React.MouseEventHandler<HTMLInputElement>;
        onMouseEnter?: React.MouseEventHandler<HTMLInputElement>;
        onMouseLeave?: React.MouseEventHandler<HTMLInputElement>;
        onMouseMove?: React.MouseEventHandler<HTMLInputElement>;
        onMouseMoveCapture?: React.MouseEventHandler<HTMLInputElement>;
        onMouseOut?: React.MouseEventHandler<HTMLInputElement>;
        onMouseOutCapture?: React.MouseEventHandler<HTMLInputElement>;
        onMouseOver?: React.MouseEventHandler<HTMLInputElement>;
        onMouseOverCapture?: React.MouseEventHandler<HTMLInputElement>;
        onMouseUp?: React.MouseEventHandler<HTMLInputElement>;
        onMouseUpCapture?: React.MouseEventHandler<HTMLInputElement>;
        onSelect?: React.ReactEventHandler<HTMLInputElement>;
        onSelectCapture?: React.ReactEventHandler<HTMLInputElement>;
        onTouchCancel?: React.TouchEventHandler<HTMLInputElement>;
        onTouchCancelCapture?: React.TouchEventHandler<HTMLInputElement>;
        onTouchEnd?: React.TouchEventHandler<HTMLInputElement>;
        onTouchEndCapture?: React.TouchEventHandler<HTMLInputElement>;
        onTouchMove?: React.TouchEventHandler<HTMLInputElement>;
        onTouchMoveCapture?: React.TouchEventHandler<HTMLInputElement>;
        onTouchStart?: React.TouchEventHandler<HTMLInputElement>;
        onTouchStartCapture?: React.TouchEventHandler<HTMLInputElement>;
        onPointerDown?: React.PointerEventHandler<HTMLInputElement>;
        onPointerDownCapture?: React.PointerEventHandler<HTMLInputElement>;
        onPointerMove?: React.PointerEventHandler<HTMLInputElement>;
        onPointerMoveCapture?: React.PointerEventHandler<HTMLInputElement>;
        onPointerUp?: React.PointerEventHandler<HTMLInputElement>;
        onPointerUpCapture?: React.PointerEventHandler<HTMLInputElement>;
        onPointerCancel?: React.PointerEventHandler<HTMLInputElement>;
        onPointerCancelCapture?: React.PointerEventHandler<HTMLInputElement>;
        onPointerEnter?: React.PointerEventHandler<HTMLInputElement>;
        onPointerLeave?: React.PointerEventHandler<HTMLInputElement>;
        onPointerOver?: React.PointerEventHandler<HTMLInputElement>;
        onPointerOverCapture?: React.PointerEventHandler<HTMLInputElement>;
        onPointerOut?: React.PointerEventHandler<HTMLInputElement>;
        onPointerOutCapture?: React.PointerEventHandler<HTMLInputElement>;
        onGotPointerCapture?: React.PointerEventHandler<HTMLInputElement>;
        onGotPointerCaptureCapture?: React.PointerEventHandler<HTMLInputElement>;
        onLostPointerCapture?: React.PointerEventHandler<HTMLInputElement>;
        onLostPointerCaptureCapture?: React.PointerEventHandler<HTMLInputElement>;
        onScroll?: React.UIEventHandler<HTMLInputElement>;
        onScrollCapture?: React.UIEventHandler<HTMLInputElement>;
        onWheel?: React.WheelEventHandler<HTMLInputElement>;
        onWheelCapture?: React.WheelEventHandler<HTMLInputElement>;
        onAnimationStart?: React.AnimationEventHandler<HTMLInputElement>;
        onAnimationStartCapture?: React.AnimationEventHandler<HTMLInputElement>;
        onAnimationEnd?: React.AnimationEventHandler<HTMLInputElement>;
        onAnimationEndCapture?: React.AnimationEventHandler<HTMLInputElement>;
        onAnimationIteration?: React.AnimationEventHandler<HTMLInputElement>;
        onAnimationIterationCapture?: React.AnimationEventHandler<HTMLInputElement>;
        onTransitionEnd?: React.TransitionEventHandler<HTMLInputElement>;
        onTransitionEndCapture?: React.TransitionEventHandler<HTMLInputElement>;
        key?: React.Key | null | undefined;
        list?: string | undefined;
        step?: number | string | undefined;
        hidden?: boolean | undefined;
        pattern?: string | undefined;
        defaultChecked?: boolean | undefined;
        suppressContentEditableWarning?: boolean | undefined;
        accessKey?: string | undefined;
        autoFocus?: boolean | undefined;
        contentEditable?: (boolean | "true" | "false") | "inherit" | "plaintext-only" | undefined;
        contextMenu?: string | undefined;
        dir?: string | undefined;
        draggable?: (boolean | "true" | "false") | undefined;
        nonce?: string | undefined;
        spellCheck?: (boolean | "true" | "false") | undefined;
        translate?: "yes" | "no" | undefined;
        radioGroup?: string | undefined;
        about?: string | undefined;
        content?: string | undefined;
        datatype?: string | undefined;
        inlist?: any;
        property?: string | undefined;
        rel?: string | undefined;
        resource?: string | undefined;
        rev?: string | undefined;
        typeof?: string | undefined;
        vocab?: string | undefined;
        autoCapitalize?: string | undefined;
        autoCorrect?: string | undefined;
        autoSave?: string | undefined;
        itemProp?: string | undefined;
        itemScope?: boolean | undefined;
        itemType?: string | undefined;
        itemID?: string | undefined;
        itemRef?: string | undefined;
        results?: number | undefined;
        security?: string | undefined;
        unselectable?: "on" | "off" | undefined;
        is?: string | undefined;
        disabled?: boolean | undefined;
        checked?: boolean | undefined;
        formAction?: string | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_EXPERIMENTAL_FORM_ACTIONS] | undefined;
        formEncType?: string | undefined;
        formMethod?: string | undefined;
        formNoValidate?: boolean | undefined;
        formTarget?: string | undefined;
        placeholder?: string | undefined;
        autoComplete?: React.HTMLInputAutoCompleteAttribute | undefined;
        multiple?: boolean | undefined;
        accept?: string | undefined;
        alt?: string | undefined;
        capture?: boolean | "user" | "environment" | undefined;
        enterKeyHint?: "enter" | "done" | "go" | "next" | "previous" | "search" | "send" | undefined;
        maxLength?: number | undefined;
        minLength?: number | undefined;
        readOnly?: boolean | undefined;
        required?: boolean | undefined;
        src?: string | undefined;
        ariaLabel?: string;
        fieldClassName?: string;
        inversed?: boolean;
        multiline?: boolean;
        numeric?: boolean;
        rows?: import("./TextInput").TextInputRows;
        inputRef?: React.Ref<any> | React.MutableRefObject<any>;
        size?: import("./TextInput").TextInputSize;
    };
};
export default useLabelMask;
