import type { UmbCollectionItemModel } from '../types.js';
import { UmbLitElement } from '../../lit-element/index.js';
/**
 * Abstract base class for collection view elements.
 * Provides shared state management, selection handling, and context consumption for collection views.
 */
export declare abstract class UmbCollectionViewElementBase<CollectionItemType extends UmbCollectionItemModel = UmbCollectionItemModel> extends UmbLitElement {
    #private;
    protected _items: Array<CollectionItemType>;
    protected _selectable: boolean;
    protected _multiple: boolean;
    protected _selectOnly: boolean;
    protected _selection: Array<string | null>;
    protected _loading: boolean;
    protected _itemHrefs: Map<string, string>;
    constructor();
    /**
     * Determines if an item is selectable
     * @param {CollectionItemType} item - The item to check for selectability.
     * @returns {boolean} True if the item is selectable, false otherwise.
     */
    protected _isSelectableItem(item: CollectionItemType): boolean;
    /**
     * Selects an item in the collection.
     * @param {string} unique - The unique identifier of the item to select.
     */
    protected _selectItem(unique: CollectionItemType['unique']): void;
    /**
     * Deselects an item in the collection.
     * @param {string} unique - The unique identifier of the item to deselect.
     */
    protected _deselectItem(unique: CollectionItemType['unique']): void;
    /**
     * Sets the current selection in the collection.
     * @param {Array<string>} selection - An array of unique identifiers representing the new selection.
     */
    protected _setSelection(selection: Array<string>): void;
    /**
     * Checks if an item is currently selected.
     * @param {string} unique - The unique identifier of the item to check.
     * @returns {boolean} True if the item is selected, false otherwise.
     */
    protected _isSelectedItem(unique: CollectionItemType['unique']): boolean;
}
