export declare namespace VectorWithSelection {
    /**
 * An options object for creating a tab bar.
 */
    interface IOptions {
        /**
         * Whether an item can be deselected by the user.
         *
         * The default is `false`.
         */
        allowDeselect?: boolean;
        /**
         * The selection behavior when inserting a tab.
         *
         * The default is `'select-tab-if-needed'`.
         */
        insertBehavior?: VectorWithSelection.InsertBehavior;
        /**
         * The selection behavior when removing a tab.
         *
         * The default is `'select-tab-after'`.
         */
        removeBehavior?: VectorWithSelection.RemoveBehavior;
    }
    /**
     * The arguments object for the `currentChanged` signal.
     */
    interface ICurrentChangedArgs<T> {
        /**
         * The previously selected index.
         */
        previousIndex: number;
        /**
         * The previous selected item.
         */
        previousItem: T;
        /**
         * The currently selected index.
         */
        currentIndex: number;
        /**
         * The currently selected item.
         */
        currentItem: T;
    }
    /**
     * A type alias for the selection behavior on item insert.
     */
    type InsertBehavior = ('none' | 'select-item' | 'select-item-if-needed');
    /**
     * A type alias for the selection behavior on item remove.
     */
    type RemoveBehavior = ('none' | 'select-item-after' | 'select-item-before' | 'select-previous-item');
}
