import { AbstractDataProvider, BaseDataSource } from '@fundamental-ngx/cdk/data-source';
import { Observable } from 'rxjs';
export declare class FdTreeDataSource<T> extends BaseDataSource<T> {
    dataProvider: AbstractDataProvider<T>;
    /** @hidden */
    limitless: boolean;
    /** @hidden */
    constructor(dataProvider: AbstractDataProvider<T>);
}
export declare class ArrayTreeDataSource<T> extends FdTreeDataSource<T> {
    /** @hidden */
    constructor(data: T[]);
}
export declare class ObservableTreeDataSource<T> extends FdTreeDataSource<T> {
    /** @hidden */
    constructor(data: Observable<T[]>);
}
/**
 * Type of acceptable objects as a datasource for the Multi-Combo Box component.
 */
export type FdTreeAcceptableDataSource<T = any> = FdTreeDataSource<T> | Observable<T[]> | T[];
export type FdTreeItemType<Type extends FdTreeAcceptableDataSource> = Type extends BaseDataSource<infer X> ? X : Type extends Array<infer X> ? X : Type extends Observable<infer X> ? X extends Array<infer V> ? V : X : Type;
