/// <reference types="react" />
export interface ICascaderBaseProps {
    options: IPublicCascaderItem[];
    placeholder?: string;
    className?: string;
    popupClassName?: string;
    disabled?: boolean;
    clearable?: boolean;
    visible?: boolean;
    onVisibleChange?: (visible: boolean) => void;
    renderValue?: (selectedOptions: ICascaderItem[]) => React.ReactNode;
    renderItemContent?: (node: ICascaderItem) => React.ReactNode;
    getItemTooltip?: (node: ICascaderItem) => string | undefined;
    renderList?: (nodes: ICascaderItem[], renderItem: (node: ICascaderItem) => React.ReactNode) => React.ReactNode;
}
export declare type CascaderValue = string | number;
export declare type CascaderItemSelectionState = 'on' | 'off' | 'partial';
export declare type CascaderSimplifySelectionMode = 'excludeDisabled' | 'includeDisabled';
export interface IPublicCascaderItem {
    value: CascaderValue;
    label: string;
    children?: IPublicCascaderItem[];
    disabled?: boolean;
    loadChildrenOnExpand?: boolean;
    loadChildrenOnScroll?: boolean;
    [key: string]: unknown;
}
export interface ICascaderItem extends IPublicCascaderItem {
    children: ICascaderItem[];
    parent: ICascaderItem | null;
}
export declare type CascaderTabsClickHandler = (node: ICascaderItem, closePopup: () => void) => void;
export declare type CascaderMenuClickHandler = (node: ICascaderItem, closePopup: () => void) => void;
export declare type CascaderMenuHoverHandler = (node: ICascaderItem) => void;
export declare type CascaderSearchClickHandler = (path: ICascaderItem[], closePopup: () => void) => void;
export declare enum CascaderChangeAction {
    Clear = "clear",
    Change = "change"
}
export interface ICascaderChangeMeta {
    action: CascaderChangeAction;
}
export interface ICascaderMultipleChangeMeta extends ICascaderChangeMeta {
    simplify(options: Array<ICascaderItem[]>, mode: CascaderSimplifySelectionMode): Array<ICascaderItem[]>;
}
export declare enum CascaderLoadAction {
    LoadChildren = "loadChildren",
    Scroll = "scroll"
}
export interface ICascaderLoadMeta {
    action: CascaderLoadAction;
}
