/// <reference types="node" />
/// <reference types="react" />
import { PureComponent } from '../component';
import DatumTree from '../Datum/Tree';
import Input from './Input';
import { CascaderBaseValue, OriginCascaderProps } from './Props';
import { RegularAttributes } from '../@types/common';
interface State<Value> {
    focus: boolean;
    path: Value;
    position: RegularAttributes.ListPosition;
}
declare class Cascader<DataItem, Value extends CascaderBaseValue> extends PureComponent<OriginCascaderProps<DataItem, Value>, State<Value>> {
    static defaultProps: {
        data: never[];
        height: number;
        clearable: boolean;
        showArrow: boolean;
        expandTrigger: string;
        childrenKey: string;
    };
    pathChangeTimer: NodeJS.Timeout | null;
    datum: DatumTree<DataItem>;
    selectId: string;
    isRendered: boolean;
    lastFoucs: boolean;
    shouldUpdateAfterRef: boolean;
    ref: HTMLDivElement;
    close: (e: MouseEvent) => void;
    handleBlur: (e: MouseEvent) => void;
    handleClick: (e?: any) => void;
    input: Input;
    lastValue?: Value;
    element: HTMLDivElement;
    renderPending: boolean;
    constructor(props: OriginCascaderProps<DataItem, Value>);
    componentDidMount(): void;
    componentDidUpdate(prevProps: OriginCascaderProps<DataItem, Value>, prevState: State<Value>): void;
    componentWillUnmount(): void;
    get focus(): boolean;
    get shouldFinal(): boolean;
    setOpenEvent(): void;
    bindRef(el: HTMLDivElement): void;
    bindClickAway(): void;
    bindInput(input: Input): void;
    clearClickAway(): void;
    shouldFocus(el: HTMLDivElement): boolean;
    updatePath(): void;
    updatePathByValue(force?: boolean): void;
    handleClickAway(e: MouseEvent): void;
    handlePathChange(id: string | number, data: DataItem | null, path: (string | number)[], fromClick?: boolean): void;
    handleFocus(e: any): void;
    handleClear(): void;
    handleRemove(node: DataItem): void;
    handleState(focus: boolean, e?: MouseEvent): void;
    handleKeyDown(e: any): void;
    handleChange(...args: [Value, DataItem?]): void;
    renderList(): JSX.Element;
    renderAbsoluteList(): JSX.Element | null;
    renderFilterList(): JSX.Element;
    renderPanel(): JSX.Element | null;
    render(): JSX.Element;
}
export default Cascader;
