import { CSSProperties } from 'react';
export type Alignment = 'left' | 'center' | 'right';
type Item = Record<string, unknown> & {
    id: string;
};
export type MenuListProps<T extends Item> = {
    /**
     * menu alignment - "left" | "center" | "right".
     */
    alignment?: Alignment;
    /**
     * menu list custom content
     */
    children?: JSX.Element | JSX.Element[];
    /**
     * menu list className
     */
    className?: string;
    /**
     * menu content
     */
    content?: T[];
    /**
     * menu content row
     */
    default?: JSX.Element | null;
    /**
     * empty block
     */
    emptyBlock?: JSX.Element | null;
    /**
     * menu footer
     */
    footer?: JSX.Element | null;
    /**
     * menu header.
     */
    header?: JSX.Element | null;
    infiniteScrollProps?: {
        count?: number;
        hasMore: boolean;
        isOptimized?: boolean;
        onLoadMore: () => Promise<unknown> | unknown;
        token?: string;
    };
    /**
     * menu list loading
     */
    isLoading?: boolean;
    menuWidth?: string;
    /**
     * menu content row
     */
    renderRow?: (item: T) => JSX.Element;
    /**
     * menu list additional styles
     */
    style?: CSSProperties;
};
export declare function MenuList<T extends Item>({ alignment, header, default: DefaultItem, emptyBlock, renderRow: RenderRow, footer, content, style, className, children, isLoading, infiniteScrollProps, menuWidth, }: MenuListProps<T>): JSX.Element;
export type MenuListGroupedRowProps<T extends Item> = {
    /**
     * menu content
     */
    content: T[];
    /**
     * menu header.
     */
    header: JSX.Element;
    /**
     * menu content row
     */
    renderRow?: (item: T) => JSX.Element | null;
};
export declare function MenuListGroupedRow<T extends Item>({ header, renderRow: RenderRow, content, }: MenuListGroupedRowProps<T>): JSX.Element;
export {};
