/**
 * SPDX-FileCopyrightText: © 2020 Liferay, Inc. <https://liferay.com>
 * SPDX-License-Identifier: BSD-3-Clause
 */
import React from 'react';
import { TItem } from './SelectBox';
declare type TItems = Array<Array<TItem>>;
interface IBoxProps {
    /**
     * Id of the selectbox to be used with the label
     */
    id?: string;
    /**
     * Label of the left Select Box.
     */
    label?: string;
    /**
     * Handler that triggers when a new item is selected in the left Select Box.
     */
    onSelectChange?: (val: Array<string>) => void;
    /**
     * Array of selected items in the left Select Box.
     */
    selected?: Array<string>;
}
interface IProps extends React.HTMLAttributes<HTMLDivElement> {
    /**
     * Labels for the aria attributes
     */
    ariaLabels?: {
        transferLTR: string;
        transferRTL: string;
    };
    /**
     * Disables the button responsible for moving items from right to left box.
     */
    disableRTL?: boolean;
    /**
     * Disables the button responsible for moving items from left to right box.
     */
    disableLTR?: boolean;
    /**
     * Items spread across two arrays that will be displayed in the two Select Boxes.
     */
    items: TItems;
    /**
     * Handler that triggers when the content of the items prop are changed. Caused by either reordering or transfering of items.
     */
    onItemsChange: (val: TItems) => void;
    /**
     * Props for the left Select Box.
     */
    left?: IBoxProps;
    /**
     * Props for the right Select Box.
     */
    right?: IBoxProps;
    /**
     * Amount of items that can fit inside the both Select Boxes before a scrollbar is introduced.
     */
    size?: number;
    /**
     * Path to the spritemap that Icon should use when referencing symbols.
     */
    spritemap?: string;
}
declare const ClayDualListBox: ({ ariaLabels, className, disableLTR, disableRTL, items, left, onItemsChange, right, size, spritemap, ...otherProps }: IProps) => JSX.Element;
export default ClayDualListBox;
