import React from 'react';
import PropTypes from 'prop-types';
import '@douyinfe/semi-foundation/lib/es/list/list.css';
import ListItem from './item';
import { Grid } from './list-context';
import BaseComponent from '../_base/baseComponent';
export type { ListItemProps } from './item';
export interface ListProps<T> {
    style?: React.CSSProperties;
    className?: string;
    children?: React.ReactNode;
    bordered?: boolean;
    footer?: React.ReactNode;
    header?: React.ReactNode;
    layout?: 'vertical' | 'horizontal';
    size?: 'small' | 'large' | 'default';
    split?: boolean;
    emptyContent?: React.ReactNode;
    dataSource?: T[];
    renderItem?: (item: T, ind: number) => React.ReactNode;
    grid?: Grid;
    loading?: boolean;
    loadMore?: React.ReactNode;
    onClick?: React.MouseEventHandler<HTMLLIElement>;
    onRightClick?: React.MouseEventHandler<HTMLLIElement>;
}
declare class List<T = any> extends BaseComponent<ListProps<T>> {
    static Item: typeof ListItem;
    static propTypes: {
        style: PropTypes.Requireable<object>;
        className: PropTypes.Requireable<string>;
        bordered: PropTypes.Requireable<boolean>;
        footer: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        header: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        layout: PropTypes.Requireable<string>;
        size: PropTypes.Requireable<string>;
        split: PropTypes.Requireable<boolean>;
        emptyContent: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        dataSource: PropTypes.Requireable<any[]>;
        renderItem: PropTypes.Requireable<(...args: any[]) => any>;
        grid: PropTypes.Requireable<object>;
        loading: PropTypes.Requireable<boolean>;
        loadMore: PropTypes.Requireable<PropTypes.ReactNodeLike>;
        onRightClick: PropTypes.Requireable<(...args: any[]) => any>;
        onClick: PropTypes.Requireable<(...args: any[]) => any>;
    };
    static defaultProps: {
        bordered: boolean;
        split: boolean;
        loading: boolean;
        layout: string;
        size: string;
        onRightClick: (...args: any[]) => void;
        onClick: (...args: any[]) => void;
    };
    renderEmpty: () => React.JSX.Element;
    wrapChildren(childrenList: React.ReactNode, children: React.ReactNode): React.JSX.Element;
    render(): React.JSX.Element;
}
export default List;
