import { AccentType } from '../button';
import { InfoIconProps } from '../info-icon';
import { ValueObject } from './types';
import './key-value-pairs.less';
type OnChangeProps = ValueObject;
type OnErrorProps = ValueObject;
type KeyValuePairsProps = {
    /** Object that represents the key value pairs in this component */
    value: ValueObject;
    className?: string;
    /** whether whole form is disabled */
    isDisabled?: boolean;
    disabledPairs?: ValueObject;
    label?: string;
    /** Label for the key column */
    keyLabel?: string;
    /** Label for the value column */
    valueLabel?: string;
    placeholder?: string;
    helperText?: string;
    onChange: (params: OnChangeProps) => void;
    /** Bool to trigger a warning through props */
    hasWarning?: boolean;
    /** Warning message to display if hasWarning is true */
    warningMessage?: string;
    /** Custom display string for adding a new key value pair. Defaults to `Add item`. */
    buttonText?: string;
    testId?: string;
    /** Props to pass to show an info icon next to label. */
    infoIconProps: InfoIconProps | null;
    /** Function to trigger on error */
    onError: (param: OnErrorProps) => void;
    /** Sets a max number of KVPs available */
    maxSize?: number | null;
    /** prop to use empty validation */
    emptyCheck?: boolean;
    /** Text to display if max item limit has been reached */
    maxItemsTooltipText?: string;
    /** Text to display if an empty item is detected */
    emptyItemErrorText?: string;
    /** Aria label text to display for the delete icon-button */
    deleteKeyValueText?: string;
    /** Custom function to generate error string if a duplicated item is detected */
    buildDuplicateItemErrorText?: (params: {
        name: string | number;
    }) => string;
    /** Accent type of the add button. Defaults to command */
    addButtonAccentType?: AccentType;
    /** Key input aria label. Should be passed if usual keyLabel is undefined  */
    keyInputAriaLabel?: string;
    /** Value input aria label. Should be passed if usual valueLabel is undefined  */
    valueInputAriaLabel?: string;
    id?: string;
};
/** Key Value Pairs
    @midnight-gray-supported
    @alpine-light-supported
 */
export declare const KeyValuePairs: ({ value, className, label, keyLabel, valueLabel, helperText, placeholder: placeholderParams, isDisabled, disabledPairs, onChange, hasWarning, emptyCheck, warningMessage: warningMessageParams, buttonText: buttonTextParams, maxItemsTooltipText: maxItemsTooltipTextParams, emptyItemErrorText: emptyItemErrorTextParams, deleteKeyValueText: deleteKeyValueTextParams, buildDuplicateItemErrorText: buildDuplicateItemErrorTextParams, testId, infoIconProps, onError, maxSize, addButtonAccentType, keyInputAriaLabel: keyInputAriaLabelParams, valueInputAriaLabel: valueInputAriaLabelParams, id, }: KeyValuePairsProps) => import("react/jsx-runtime").JSX.Element;
export {};
