import * as React from 'react';
import * as PropTypes from 'prop-types';
interface IOneRowProps {
    id?: number;
    areaName?: string;
    subArea?: IOneRowProps[];
    length?: number;
}
interface AddressProps {
    /**
     * 自定义className
     *
     * @type {(string | string[] | { [key: string]: boolean })}
     */
    className?: string | string[] | {
        [key: string]: boolean;
    };
    /**
     * 自定义Style
     *
     * @type {(string | React.CSSProperties)}
     */
    customStyle?: string | React.CSSProperties;
    /**
     * 主题
     */
    theme?: '' | 'theme-light' | 'theme-dark' | string;
    /**
     * 数据源，多维数组
     */
    dataSource: IOneRowProps[];
    /**
     * 自定义组件标题
     */
    title: string;
    /**
     * 地址导航提示文字
     */
    navTips: string;
    /**
     * 初始化地址的id数组
     */
    selectedIdList: number[];
    /**
     * 是否异步获取数据
     */
    isAsyncData: boolean;
    /**
     * 自定义 关闭方法
     */
    onClose: () => void;
    /**
     * 异步数据返回的一级id
     */
    /**
     * 初始化地址的id数组
     * 返回值 Promise{asyncIdOne: number, dataSource: IOneRowProps[]}
     */
    getOneLevelData: (item: IOneRowProps, level: number) => any;
    /**
     * 初始化地址的id数组
     */
    onAddressChange: (selectRowList: IOneRowProps) => void;
    /**
     * pickerStatusChange
     */
    pickerStatusChange: (show: boolean) => void;
}
interface ITouchProps {
    startX?: number;
    startY?: number;
    moved?: boolean;
    targetIdx?: number;
}
interface AddressState {
    selectedRows: IOneRowProps[];
    currentLevel: number;
    show: boolean;
}
export default class AddressPicker extends React.Component<AddressProps, AddressState> {
    static defaultProps: AddressProps;
    static propTypes: PropTypes.InferProps<AddressProps>;
    mainWrapRef: any;
    listWrapRef: any;
    navRef: any;
    navLineRef: any;
    idUUid: string;
    touch: ITouchProps;
    constructor(props: AddressProps);
    static getDerivedStateFromProps(nextProps: AddressProps, prevState: AddressState): {
        currentLevel: number;
        selectedRows: IOneRowProps[];
    } | null;
    pickerStatusChange: (show: boolean) => void;
    componentWillUnmount(): void;
    componentDidUpdate(prevProps: AddressProps, prevState: AddressState): void;
    /**
     * 外部调用，显示事件
     *
     * @memberof AddressPicker
     */
    show: () => void;
    /**
     * 外部调用，显示事件
     *
     * @memberof AddressPicker
     */
    hide: () => void;
    changeInnerState: () => void;
    onTouchStart: (e: any) => void;
    onTouchMove: (e: any) => void;
    onTouchEnd: () => void;
    bindEvent: () => void;
    unBindEvent: () => void;
    doAnimation: () => void;
    setItemCenter: () => void;
    getOneLevelData: (item: IOneRowProps, level: number) => void;
    onSelectedRow: (item: IOneRowProps, level: number) => () => void;
    onSelectedNav: (level: number) => () => void;
    onNavBarMove: () => void;
    renderNextData: (ds: IOneRowProps[], level: number | undefined, item: IOneRowProps) => JSX.Element | null;
    render(): React.ReactPortal;
}
export {};
