export declare class ArrayDataSource extends DataSource { constructor(_data: T[] | ReadonlyArray | Observable>); connect(): Observable>; disconnect(): void; } export interface CollectionViewer { viewChange: Observable; } export declare abstract class DataSource { abstract connect(collectionViewer: CollectionViewer): Observable>; abstract disconnect(collectionViewer: CollectionViewer): void; } export declare function getMultipleValuesInSingleSelectionError(): Error; export declare function isDataSource(value: any): value is DataSource; export declare type ListRange = { start: number; end: number; }; export interface SelectionChange { added: T[]; removed: T[]; source: SelectionModel; } export declare class SelectionModel { changed: Subject>; get selected(): T[]; constructor(_multiple?: boolean, initiallySelectedValues?: T[], _emitChanges?: boolean); clear(): void; deselect(...values: T[]): void; hasValue(): boolean; isEmpty(): boolean; isMultipleSelection(): boolean; isSelected(value: T): boolean; select(...values: T[]): void; sort(predicate?: (a: T, b: T) => number): void; toggle(value: T): void; } export interface TreeDataNodeFlattener { expandFlattenedNodes(nodes: T[], expansionModel: SelectionModel): T[]; flattenNodes(structuredData: any[]): T[]; nodeDescendents(node: T, nodes: T[], onlyExpandable: boolean): void; } export declare class UniqueSelectionDispatcher implements OnDestroy { listen(listener: UniqueSelectionDispatcherListener): () => void; ngOnDestroy(): void; notify(id: string, name: string): void; static ɵfac: i0.ɵɵFactoryDef; static ɵprov: i0.ɵɵInjectableDef; } export declare type UniqueSelectionDispatcherListener = (id: string, name: string) => void;