import type { RefObject } from 'react';
import React from 'react';
import type { TextInputProps } from '../TextInput';
import Token from '../Token/Token';
import type { TokenSizeKeys } from '../Token/TokenBase';
import type { WithSlotMarker } from '../utils/types';
type AnyReactComponent = React.ComponentType<React.PropsWithChildren<any>>;
/**
 * @deprecated
 */
export type TextInputWithTokensProps<TokenComponentType extends AnyReactComponent = typeof Token> = {
    /**
     * The array of tokens to render
     */
    tokens: TokenComponentType extends React.ComponentType<React.PropsWithChildren<infer TokenProps>> ? TokenProps[] : never;
    /**
     * The function that gets called when a token is removed
     */
    onTokenRemove: (tokenId: string | number) => void;
    /**
     * The component used to render each token
     */
    tokenComponent?: TokenComponentType;
    /**
     * The maximum height of the component. If the content in the input exceeds this height,
     * it will scroll vertically
     */
    maxHeight?: React.CSSProperties['maxHeight'];
    /**
     * Whether tokens should render inline horizontally. By default, tokens wrap to new lines.
     */
    preventTokenWrapping?: boolean;
    /**
     * The size of the tokens and text input
     */
    size?: TokenSizeKeys;
    /**
     * Whether the remove buttons should be rendered in the tokens
     */
    hideTokenRemoveButtons?: boolean;
    /**
     * The number of tokens to display before truncating
     */
    visibleTokenCount?: number;
} & Omit<TextInputProps, 'size'>;
declare const TextInputWithTokens: React.ForwardRefExoticComponent<{
    /**
     * The array of tokens to render
     */
    tokens: any[] | (Omit<(Omit<React.DetailedHTMLProps<React.AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "ref"> & {
        ref?: RefObject<HTMLAnchorElement> | ((instance: HTMLAnchorElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | null | undefined;
    }) | (Omit<React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & {
        ref?: RefObject<HTMLButtonElement> | ((instance: HTMLButtonElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | null | undefined;
    }) | (Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & {
        ref?: RefObject<HTMLSpanElement> | ((instance: HTMLSpanElement | null) => void | React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof React.DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | null | undefined;
    }), keyof import("..").TokenProps> & import("..").TokenProps & {
        as?: "a" | "button" | "span" | undefined;
    })[];
    /**
     * The function that gets called when a token is removed
     */
    onTokenRemove: (tokenId: string | number) => void;
    /**
     * The component used to render each token
     */
    tokenComponent?: import("../utils/polymorphic").ForwardRefComponent<"a" | "button" | "span", import("..").TokenProps> | AnyReactComponent | undefined;
    /**
     * The maximum height of the component. If the content in the input exceeds this height,
     * it will scroll vertically
     */
    maxHeight?: React.CSSProperties["maxHeight"];
    /**
     * Whether tokens should render inline horizontally. By default, tokens wrap to new lines.
     */
    preventTokenWrapping?: boolean;
    /**
     * The size of the tokens and text input
     */
    size?: TokenSizeKeys;
    /**
     * Whether the remove buttons should be rendered in the tokens
     */
    hideTokenRemoveButtons?: boolean;
    /**
     * The number of tokens to display before truncating
     */
    visibleTokenCount?: number;
} & Omit<TextInputProps, "size"> & React.RefAttributes<HTMLInputElement>>;
/**
 * @deprecated
 */
declare const _default: WithSlotMarker<typeof TextInputWithTokens>;
export default _default;
//# sourceMappingURL=TextInputWithTokens.d.ts.map