import React from 'react';
export type SelectedIds = 'all' | string[];
export type Selection = {
    selectedIds: SelectedIds;
    unselectedIds: string[];
};
/**
 * The list and grid models accept a `selection` config. If one is not provided,
 * `singleSelectManager` is used. You can provide a custom select manager to suite your needs. A
 * selection manager is an object with a single `select` method that takes an id and previously
 * selected ids and returns a new set of selected ids.
 *
 * The collection system provides two selection managers: `singleSelectManager` and
 * `multiSelectionManager`.
 */
export interface SelectionManager {
    /**
     * Sets a new `Selection` state based on the current ID passed and the previous state. Each
     * selection manager can implement this differently. For example, a single select manager may
     * unselect all other items and select only the passed in id. A multiselect manager may toggle the
     * passed id.
     */
    select(id: string, prevState: Selection): Selection;
}
export declare const isSelected: (id: string, { selectedIds, unselectedIds }: Selection) => boolean;
export declare const singleSelectionManager: SelectionManager;
export declare const multiSelectionManager: SelectionManager;
export declare const useSelectionListModel: (<TT_Special_Generic>(config?: (Partial<{
    initialSelectedIds: SelectedIds;
    initialUnselectedIds: string[];
    selection: SelectionManager;
    initialCursorId: string | string[];
    columnCount: number;
    navigation: import("./useCursorListModel").NavigationManager;
    pageSize: number;
    id: string;
    getId: (item: any) => string; /**
     * Should be used with care and can be used to keep a model in sync with external controlled
     * inputs.
     */
    getTextValue: (item: any) => string;
    nonInteractiveIds: string[];
    orientation: import("./useBaseListModel").Orientation;
    defaultItemHeight: number;
    shouldVirtualize: boolean;
    items: any[];
}> & {
    onSelect?: ((data: {
        id: string;
    }, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onSelectAll?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onUnselectAll?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onSetSelectedIds?: ((data: string[] | "all", prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onRemove?: ((data: {
        id: string;
        nextId?: string | undefined;
        event?: Event | React.SyntheticEvent<Element, Event> | undefined;
    }, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoTo?: ((data: {
        id: string;
    }, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToNext?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToPrevious?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToPreviousRow?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToNextRow?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToFirst?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToLast?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToFirstOfRow?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToLastOfRow?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToNextPage?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onGoToPreviousPage?: ((data: undefined, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onRegisterItem?: ((data: {
        id: string;
        textValue: string;
    }, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onUnregisterItem?: ((data: {
        id: string;
    }, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
    onUpdateItemHeight?: ((data: {
        value: number;
    }, prevState: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => void) | undefined;
} & {
    shouldSelect?: ((data: {
        id: string;
    }, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldSelectAll?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldUnselectAll?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldSetSelectedIds?: ((data: string[] | "all", state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldRemove?: ((data: {
        id: string;
        nextId?: string | undefined;
        event?: Event | React.SyntheticEvent<Element, Event> | undefined;
    }, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoTo?: ((data: {
        id: string;
    }, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToNext?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToPrevious?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToPreviousRow?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToNextRow?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToFirst?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToLast?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToFirstOfRow?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToLastOfRow?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToNextPage?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldGoToPreviousPage?: ((data: undefined, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldRegisterItem?: ((data: {
        id: string;
        textValue: string;
    }, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldUnregisterItem?: ((data: {
        id: string;
    }, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
    shouldUpdateItemHeight?: ((data: {
        value: number;
    }, state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    }) => boolean) | undefined;
}) | undefined) => {
    state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    };
    events: {
        /** Select a specific item by its identifier. */
        select(data: {
            id: string;
        }): void;
        /**
         * Select all items. This will set `selectedIds` to `'all'` and remove all `unselectedIds`.
         * This is especially useful for virtual lists where not all items are loaded in memory.
         */
        selectAll(): void;
        /**
         * Unselect all items.
         */
        unselectAll(): void;
        /**
         * Should be used with care and can be used to keep a model in sync with external controlled
         * inputs.
         */
        setSelectedIds(ids: 'all' | string[]): void;
        /**
         * The `remove` event can be called by Behavior Hooks based on user interaction. The `onRemove`
         * can be added to the model config to signal the user wishes to remove the item in the list.
         * The `remove` event requires the dynamic API where `items` are passed to the model. It is up
         * to you to remove the item from the list. Focus redirection should be automatically managed,
         * if necessary.
         */
        remove(data: {
            id: string;
            nextId?: string;
            event?: Event | React.SyntheticEvent;
        }): void;
        goTo(data: {
            id: string;
        }): void;
        goToNext(): void;
        goToPrevious(): void;
        goToPreviousRow(): void;
        goToNextRow(): void;
        goToFirst(): void;
        goToLast(): void;
        goToFirstOfRow(): void;
        goToLastOfRow(): void;
        goToNextPage(): void;
        goToPreviousPage(): void;
        registerItem(data: {
            id: string;
            textValue: string;
        }): void;
        unregisterItem(data: {
            id: string;
        }): void;
        updateItemHeight(data: {
            value: number;
        }): void;
    };
    selection: SelectionManager;
    navigation: import("./useCursorListModel").NavigationManager;
    getId: (item: any) => string;
    getTextValue: (item: any) => string;
}) & import("@workday/canvas-kit-react/common").ModelExtras<{
    initialSelectedIds: SelectedIds;
    initialUnselectedIds: string[];
    selection: SelectionManager;
    initialCursorId: string | string[];
    columnCount: number;
    navigation: import("./useCursorListModel").NavigationManager;
    pageSize: number;
    id: string;
    getId: (item: any) => string; /**
     * Should be used with care and can be used to keep a model in sync with external controlled
     * inputs.
     */
    getTextValue: (item: any) => string;
    nonInteractiveIds: string[];
    orientation: import("./useBaseListModel").Orientation;
    defaultItemHeight: number;
    shouldVirtualize: boolean;
    items: any[];
}, {}, {
    selectedIds: string[] | "all";
    unselectedIds: string[];
    cursorId: string | string[];
    columnCount: number;
    pageSizeRef: React.MutableRefObject<number>;
    cursorIndexRef: {
        readonly current: number;
    };
    UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
    UNSTABLE_defaultItemHeight: number;
    containerRef: React.RefObject<HTMLDivElement>;
    id: string;
    orientation: "horizontal" | "vertical";
    indexRef: React.MutableRefObject<number>;
    nonInteractiveIds: string[];
    isVirtualized: boolean;
    items: import("./useBaseListModel").Item<any>[];
}, {
    /** Select a specific item by its identifier. */
    select(data: {
        id: string;
    }): void;
    /**
     * Select all items. This will set `selectedIds` to `'all'` and remove all `unselectedIds`.
     * This is especially useful for virtual lists where not all items are loaded in memory.
     */
    selectAll(): void;
    /**
     * Unselect all items.
     */
    unselectAll(): void;
    /**
     * Should be used with care and can be used to keep a model in sync with external controlled
     * inputs.
     */
    setSelectedIds(ids: 'all' | string[]): void;
    /**
     * The `remove` event can be called by Behavior Hooks based on user interaction. The `onRemove`
     * can be added to the model config to signal the user wishes to remove the item in the list.
     * The `remove` event requires the dynamic API where `items` are passed to the model. It is up
     * to you to remove the item from the list. Focus redirection should be automatically managed,
     * if necessary.
     */
    remove(data: {
        id: string;
        nextId?: string;
        event?: Event | React.SyntheticEvent;
    }): void;
    goTo(data: {
        id: string;
    }): void;
    goToNext(): void;
    goToPrevious(): void;
    goToPreviousRow(): void;
    goToNextRow(): void;
    goToFirst(): void;
    goToLast(): void;
    goToFirstOfRow(): void;
    goToLastOfRow(): void;
    goToNextPage(): void;
    goToPreviousPage(): void;
    registerItem(data: {
        id: string;
        textValue: string;
    }): void;
    unregisterItem(data: {
        id: string;
    }): void;
    updateItemHeight(data: {
        value: number;
    }): void;
}, {
    state: {
        selectedIds: string[] | "all";
        unselectedIds: string[];
        cursorId: string | string[];
        columnCount: number;
        pageSizeRef: React.MutableRefObject<number>;
        cursorIndexRef: {
            readonly current: number;
        };
        UNSTABLE_virtual: import("@tanstack/virtual-core").Virtualizer<HTMLDivElement, Element>;
        UNSTABLE_defaultItemHeight: number;
        containerRef: React.RefObject<HTMLDivElement>;
        id: string;
        orientation: "horizontal" | "vertical";
        indexRef: React.MutableRefObject<number>;
        nonInteractiveIds: string[];
        isVirtualized: boolean;
        items: import("./useBaseListModel").Item<any>[];
    };
    events: {
        /** Select a specific item by its identifier. */
        select(data: {
            id: string;
        }): void;
        /**
         * Select all items. This will set `selectedIds` to `'all'` and remove all `unselectedIds`.
         * This is especially useful for virtual lists where not all items are loaded in memory.
         */
        selectAll(): void;
        /**
         * Unselect all items.
         */
        unselectAll(): void;
        /**
         * Should be used with care and can be used to keep a model in sync with external controlled
         * inputs.
         */
        setSelectedIds(ids: 'all' | string[]): void;
        /**
         * The `remove` event can be called by Behavior Hooks based on user interaction. The `onRemove`
         * can be added to the model config to signal the user wishes to remove the item in the list.
         * The `remove` event requires the dynamic API where `items` are passed to the model. It is up
         * to you to remove the item from the list. Focus redirection should be automatically managed,
         * if necessary.
         */
        remove(data: {
            id: string;
            nextId?: string;
            event?: Event | React.SyntheticEvent;
        }): void;
        goTo(data: {
            id: string;
        }): void;
        goToNext(): void;
        goToPrevious(): void;
        goToPreviousRow(): void;
        goToNextRow(): void;
        goToFirst(): void;
        goToLast(): void;
        goToFirstOfRow(): void;
        goToLastOfRow(): void;
        goToNextPage(): void;
        goToPreviousPage(): void;
        registerItem(data: {
            id: string;
            textValue: string;
        }): void;
        unregisterItem(data: {
            id: string;
        }): void;
        updateItemHeight(data: {
            value: number;
        }): void;
    };
    selection: SelectionManager;
    navigation: import("./useCursorListModel").NavigationManager;
    getId: (item: any) => string;
    getTextValue: (item: any) => string;
}>;
//# sourceMappingURL=useSelectionListModel.d.ts.map