import React from 'react';
import PropTypes from 'prop-types';
export interface CustomExpandIconProps {
    expanded?: boolean;
    componentType?: 'tree' | 'expand';
    onClick?: (nextExpand: boolean, e: React.MouseEvent<HTMLDivElement>) => void;
    onMouseEnter?: (e: React.MouseEvent<HTMLSpanElement>) => void;
    onMouseLeave?: (e: React.MouseEvent<HTMLSpanElement>) => void;
    expandIcon?: ((expanded?: boolean) => React.ReactNode) | React.ReactNode;
    prefixCls?: string;
    motion?: boolean;
}
/**
 * render expand icon
 */
declare function CustomExpandIcon(props: CustomExpandIconProps): React.JSX.Element;
declare namespace CustomExpandIcon {
    var propTypes: {
        expanded: PropTypes.Requireable<boolean>;
        componentType: PropTypes.Requireable<string>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
        onMouseEnter: PropTypes.Requireable<(...args: any[]) => any>;
        onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
        expandIcon: PropTypes.Requireable<NonNullable<PropTypes.ReactNodeLike | ((...args: any[]) => any)>>;
        prefixCls: PropTypes.Requireable<string>;
        motion: PropTypes.Requireable<boolean>;
    };
    var defaultProps: {
        componentType: string;
        onClick: (...args: any[]) => void;
        onMouseEnter: (...args: any[]) => void;
        onMouseLeave: (...args: any[]) => void;
        prefixCls: "semi-table";
    };
}
export default CustomExpandIcon;
