import React, { PureComponent } from 'react';
import { ListRenderItemInfo, StyleProp, TextStyle, ViewStyle } from 'react-native';
import { FilterItem } from './FilterItem';
export interface FilterListProps {
    items: any;
    onApply: (selectedItems: any) => void;
    onReset: () => void;
    selectedItems?: any;
    style?: StyleProp<ViewStyle>;
    buttonContainerStyle?: StyleProp<ViewStyle>;
    resetButtonStyle?: StyleProp<ViewStyle>;
    applyButtonStyle?: StyleProp<ViewStyle>;
    resetButtonTextStyle?: StyleProp<TextStyle>;
    applyButtonTextStyle?: StyleProp<TextStyle>;
    applyText?: string;
    resetText?: string;
    itemStyle?: StyleProp<ViewStyle>;
    itemTextStyle?: StyleProp<TextStyle>;
    selectableRowProps?: any;
    accordionProps?: any;
    singleFilterIds?: string[];
    renderFilterTitle?: (item: any, selectedValues: string[]) => React.ReactNode;
    renderFilterItemValue?: (item: any, value: any, handleSelect: Function, selected: boolean) => React.ReactNode;
}
export interface FilterListState {
    selectedItems: any;
}
export declare class FilterList extends PureComponent<FilterListProps, FilterListState> {
    static getDerivedStateFromProps(nextProps: FilterListProps): Partial<FilterListState>;
    constructor(props: FilterListProps);
    handleSelect: (id: string, value: string) => () => void;
    renderFilterItemValue: (item: any) => (value: any, i: number) => {} | null | undefined;
    renderFilterItem: ({ item }: ListRenderItemInfo<FilterItem>) => JSX.Element;
    handleApply: () => void;
    handleRest: () => void;
    render(): JSX.Element;
}
