import { ListViewBase, separatorColorProperty, itemTemplatesProperty, iosEstimatedRowHeightProperty, stickyHeaderProperty, stickyHeaderTemplateProperty, stickyHeaderHeightProperty, sectionedProperty, showSearchProperty, searchAutoHideProperty } from './list-view-common';
import { CoreTypes } from '../../core-types';
import { View, type KeyedTemplate, type Template } from '../core/view';
import { Color } from '../../color';
export * from './list-view-common';
declare class ListViewCell extends UITableViewCell {
    static initWithEmptyBackground(): ListViewCell;
    initWithStyleReuseIdentifier(style: UITableViewCellStyle, reuseIdentifier: string): this;
    willMoveToSuperview(newSuperview: UIView): void;
    get view(): View;
    owner: WeakRef<View>;
}
declare class ListViewHeaderCell extends UITableViewHeaderFooterView {
    static initWithEmptyBackground(): ListViewHeaderCell;
    initWithReuseIdentifier(reuseIdentifier: string): this;
    willMoveToSuperview(newSuperview: UIView): void;
    get view(): View;
    owner: WeakRef<View>;
}
export declare class ListView extends ListViewBase {
    [separatorColorProperty.getDefault]: () => UIColor;
    [separatorColorProperty.setNative]: (value: Color | UIColor) => void;
    [itemTemplatesProperty.getDefault]: () => KeyedTemplate[];
    [itemTemplatesProperty.setNative]: (value: KeyedTemplate[]) => void;
    [iosEstimatedRowHeightProperty.getDefault]: () => CoreTypes.LengthType;
    [iosEstimatedRowHeightProperty.setNative]: (value: CoreTypes.LengthType) => void;
    [stickyHeaderProperty.getDefault]: () => boolean;
    [stickyHeaderProperty.setNative]: (value: boolean) => void;
    [stickyHeaderTemplateProperty.getDefault]: () => string | Template;
    [stickyHeaderTemplateProperty.setNative]: (value: string | Template) => void;
    [stickyHeaderHeightProperty.getDefault]: () => CoreTypes.LengthType;
    [stickyHeaderHeightProperty.setNative]: (value: CoreTypes.LengthType) => void;
    [sectionedProperty.getDefault]: () => boolean;
    [sectionedProperty.setNative]: (value: boolean) => void;
    [showSearchProperty.getDefault]: () => boolean;
    [showSearchProperty.setNative]: (value: boolean) => void;
    [searchAutoHideProperty.getDefault]: () => boolean;
    [searchAutoHideProperty.setNative]: (value: boolean) => void;
    nativeViewProtected: UITableView;
    private _dataSource;
    private _delegate;
    private _heights;
    private _preparingCell;
    private _isDataDirty;
    private _map;
    private _headerMap;
    private _preparingHeader;
    private _headerTemplateCache;
    private _searchController;
    private _searchDelegate;
    _isSearchActive: boolean;
    widthMeasureSpec: number;
    constructor();
    createNativeView(): UITableView;
    initNativeView(): void;
    disposeNativeView(): void;
    private _setupSearchController;
    private _cleanupSearchController;
    private _getViewController;
    _setNativeClipToBounds(): void;
    onLoaded(): void;
    get ios(): UITableView;
    get _childrenCount(): number;
    eachChildView(callback: (child: View) => boolean): void;
    scrollToIndex(index: number): void;
    scrollToIndexAnimated(index: number): void;
    private _scrollToIndex;
    refresh(): void;
    isItemAtIndexVisible(itemIndex: number): boolean;
    getHeight(index: number): number;
    setHeight(index: number, value: number): void;
    _onRowHeightPropertyChanged(oldValue: CoreTypes.LengthType, newValue: CoreTypes.LengthType): void;
    requestLayout(): void;
    measure(widthMeasureSpec: number, heightMeasureSpec: number): void;
    onMeasure(widthMeasureSpec: number, heightMeasureSpec: number): void;
    onLayout(left: number, top: number, right: number, bottom: number): void;
    private _layoutCell;
    _prepareCell(cell: ListViewCell, indexPath: NSIndexPath): number;
    _removeContainer(cell: ListViewCell): void;
    _prepareHeader(headerCell: ListViewHeaderCell, section: number): number;
    private _layoutHeader;
    private _getHeaderTemplate;
    _removeHeaderContainer(headerCell: ListViewHeaderCell): void;
}
