import { Keyed, Key } from '@synnaxlabs/x';
import { PropsWithChildren, ReactElement } from 'react';

export interface ListProps<K extends Key = Key, E extends Keyed<K> = Keyed<K>> extends PropsWithChildren<unknown> {
    data?: E[];
    emptyContent?: ReactElement;
    omit?: K[];
}
/**
 * The main component for building a List. By itself, it does not render any HTML, and
 * should be used in conjunction with its sub-components (List.'X') to build a list
 * component to fit your needs.
 *
 * @param props - The props for the List component.
 * @param props.data - The data to be displayed in the list. The values of the object in
 * each entry of the array must satisfy the {@link RenderableValue} interface i.e. they
 * must be a primitive type or implement a 'toString' method.
 * @param props.children - Sub-components of the List component to add additional functionality.
 *
 */
export declare const List: <K extends Key = Key, E extends Keyed<K> = Keyed<K>>({ children, data, emptyContent, omit, }: ListProps<K, E>) => ReactElement;
//# sourceMappingURL=List.d.ts.map