import { StyleProp, TextStyle, ViewStyle } from 'react-native';
import React, { Component } from 'react';
export declare type SelectCascaderOneValue = string | number | undefined;
export declare type SelectCascaderValue = SelectCascaderOneValue[];
export interface ICascaderDataItem {
    label: React.ReactNode;
    value: SelectCascaderOneValue;
    children?: ICascaderDataItem[];
}
export interface SelectCascaderProps {
    /** 隐藏 */
    onDismiss?: () => void;
    /** 弹框标题 */
    title?: string;
    /** 取消button文字 */
    dismissText?: string;
    /** 确定button文字 */
    okText?: string;
    /** 自定义取消元素 */
    renderDismissNode: React.ReactNode;
    /** 自定义标题元素 */
    renderTitleNode: React.ReactNode;
    /** 自定义确定元素 */
    renderOkNode: React.ReactNode;
    /** 选中的值 */
    value?: SelectCascaderValue;
    /** 选中时执行此回调 */
    onChange?: (value: SelectCascaderValue, label: string) => void;
    /** 显示隐藏控制值 */
    visible: boolean;
    /** 列表数据 */
    data: ICascaderDataItem[];
    /** 默认选择的值 */
    defaultValue?: SelectCascaderValue | undefined;
    /** 确定选中的值 */
    onOk?: (value: SelectCascaderValue, label: string) => void;
    /** 列数 默认 3 */
    cols?: number;
    /** 选择器样式 */
    pickerItemStyle?: StyleProp<TextStyle>;
    /** 选择器头部样式 */
    headerStyle?: StyleProp<ViewStyle>;
    /** 点击蒙层是否关闭 */
    maskClosable?: boolean;
    /** 动作在被触摸操作激活时以多少不透明度显示 默认 1 */
    activeOpacity?: number;
    /** 动作有触摸操作时显示出来的底层的颜色 */
    underlayColor?: string;
}
export interface Istate {
    value: SelectCascaderValue;
    modalVisible: boolean;
    controlVisible: 'state' | 'props';
}
export default class SelectCascader extends Component<SelectCascaderProps, Istate> {
    static defaultProps: {
        dismissText: string;
        okText: string;
        title: string;
        cols: number;
        maskClosable: boolean;
    };
    state: Istate;
    static getDerivedStateFromProps(props: SelectCascaderProps, state: Istate): {
        modalVisible: boolean;
        controlVisible: string;
        value?: undefined;
    } | {
        value: SelectCascaderValue;
        modalVisible?: undefined;
        controlVisible?: undefined;
    } | {
        value: SelectCascaderValue;
        modalVisible: boolean;
        controlVisible: string;
    } | null;
    getSel(value: SelectCascaderValue): string;
    onValueChange: (itemValue: SelectCascaderOneValue, index: number) => void;
    getCols: () => JSX.Element[];
    onDismiss: () => void;
    onOk: () => void;
    render(): JSX.Element;
}
