import React, { PureComponent } from 'react';
import { StyleProp, TextStyle, ViewStyle } from 'react-native';
export interface SelectorItem {
    disabled?: boolean;
    label: string;
    selected?: boolean;
    value: any;
}
export interface SelectorProps {
    items: SelectorItem[];
    title?: string;
    placeholder?: string;
    selectedValue?: any;
    onValueChange?: (value: string) => void;
    itemHeight?: number;
    renderDropdownArrow?: () => React.ReactNode;
    renderCloseButton?: (closeModal: Function) => React.ReactNode;
    style?: StyleProp<ViewStyle>;
    selectButtonStyle?: StyleProp<ViewStyle>;
    labelStyle?: StyleProp<TextStyle>;
    placeholderStyle?: StyleProp<TextStyle>;
    itemStyle?: StyleProp<ViewStyle>;
    itemTextStyle?: StyleProp<TextStyle>;
    modalHeaderStyle?: StyleProp<ViewStyle>;
    modalHeaderTextStyle?: StyleProp<TextStyle>;
    disabledItemStyle?: StyleProp<ViewStyle>;
    selectedItemStyle?: StyleProp<ViewStyle>;
    selectedItemTextStyle?: StyleProp<TextStyle>;
}
export interface SelectorStateType {
    modalVisible: boolean;
    selectedValue: SelectorItem;
}
export declare class Selector extends PureComponent<SelectorProps, SelectorStateType> {
    static getDerivedStateFromProps(nextProps: SelectorProps, prevState: SelectorStateType): Partial<SelectorStateType> | null;
    listView: any;
    constructor(props: SelectorProps);
    renderSelector: () => JSX.Element;
    renderDropdownArrow: () => {} | null | undefined;
    renderCloseButton: () => {} | null | undefined;
    renderModal: () => JSX.Element;
    render(): JSX.Element;
    openModal: () => void;
    closeModal: () => void;
    chooseItem: (value: any) => () => void;
}
