/*
 * Copyright (C) 2007-2022 Crafter Software Corporation. All Rights Reserved.
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU Lesser General Public License version 3 as published by
 * the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU Lesser General Public License for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

import React, { PropsWithChildren } from 'react';
import { BoxProps } from '@mui/material/Box';
import Person from '../../models/Person';
export declare const List: import('@emotion/styled').StyledComponent<
  {
    children?: React.ReactNode;
    classes?: Partial<import('@mui/material/List').ListClasses>;
    dense?: boolean;
    disablePadding?: boolean;
    subheader?: React.ReactNode;
    sx?: import('@mui/material/styles').SxProps<import('@mui/material/styles').Theme>;
  } & import('@mui/material/OverridableComponent').CommonProps &
    Omit<
      Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, 'ref'> & {
        ref?: React.Ref<HTMLUListElement>;
      },
      | keyof import('@mui/material/OverridableComponent').CommonProps
      | 'children'
      | 'sx'
      | 'dense'
      | 'disablePadding'
      | 'subheader'
    > &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export declare const ListSubheader: import('@emotion/styled').StyledComponent<
  {
    children?: React.ReactNode;
    classes?: Partial<import('@mui/material/ListSubheader').ListSubheaderClasses>;
    color?: 'inherit' | 'default' | 'primary';
    disableGutters?: boolean;
    disableSticky?: boolean;
    inset?: boolean;
    sx?: import('@mui/material/styles').SxProps<import('@mui/material/styles').Theme>;
  } & import('@mui/material/OverridableComponent').CommonProps &
    Omit<
      Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, 'ref'> & {
        ref?: React.Ref<HTMLLIElement>;
      },
      | 'color'
      | 'inset'
      | keyof import('@mui/material/OverridableComponent').CommonProps
      | 'children'
      | 'sx'
      | 'disableGutters'
      | 'disableSticky'
    > &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export declare const ListItem: import('@emotion/styled').StyledComponent<
  {
    button?: false;
  } & import('@mui/material/ListItem').ListItemBaseProps & {
      components?: {
        Root?: React.ElementType<any>;
      };
      componentsProps?: {
        root?: React.HTMLAttributes<HTMLDivElement> & import('@mui/material/ListItem').ListItemComponentsPropsOverrides;
      };
      slotProps?: {
        root?: React.HTMLAttributes<HTMLDivElement> & import('@mui/material/ListItem').ListItemComponentsPropsOverrides;
      };
      slots?: {
        root?: React.ElementType<any>;
      };
    } & import('@mui/material/OverridableComponent').CommonProps &
    Omit<
      Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, 'ref'> & {
        ref?: React.Ref<HTMLLIElement>;
      },
      | 'alignItems'
      | 'className'
      | 'style'
      | 'classes'
      | 'children'
      | 'sx'
      | 'button'
      | 'autoFocus'
      | 'disabled'
      | 'selected'
      | 'dense'
      | 'slotProps'
      | 'slots'
      | 'components'
      | 'componentsProps'
      | 'disableGutters'
      | 'divider'
      | 'disablePadding'
      | 'ContainerComponent'
      | 'ContainerProps'
      | 'secondaryAction'
    > &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export declare const ListItemIcon: import('@emotion/styled').StyledComponent<
  import('@mui/material/ListItemIcon').ListItemIconProps &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export declare const ListItemAvatar: import('@emotion/styled').StyledComponent<
  import('@mui/material/ListItemAvatar').ListItemAvatarProps &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export declare const DenseCheckbox: import('@emotion/styled').StyledComponent<
  import('@mui/material/Checkbox').CheckboxProps &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export declare const DashletAvatar: import('@emotion/styled').StyledComponent<
  {
    alt?: string;
    children?: React.ReactNode;
    classes?: Partial<import('@mui/material/Avatar').AvatarClasses>;
    imgProps?: React.ImgHTMLAttributes<HTMLImageElement> & {
      sx?: import('@mui/material/styles').SxProps<import('@mui/material/styles').Theme>;
    };
    sizes?: string;
    src?: string;
    srcSet?: string;
    sx?: import('@mui/material/styles').SxProps<import('@mui/material/styles').Theme>;
    variant?: 'square' | 'circular' | 'rounded';
  } & import('@mui/material/OverridableComponent').CommonProps &
    Omit<
      Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'ref'> & {
        ref?: React.Ref<HTMLDivElement>;
      },
      | keyof import('@mui/material/OverridableComponent').CommonProps
      | 'children'
      | 'sx'
      | 'alt'
      | 'src'
      | 'sizes'
      | 'srcSet'
      | 'variant'
      | 'imgProps'
    > &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export interface PersonAvatarProps {
  person: Person;
}
export declare function PersonAvatar(props: PersonAvatarProps): JSX.Element;
export declare const getItemSkeleton: ({
  numOfItems,
  showCheckbox,
  showAvatar
}: Partial<{
  numOfItems: number;
  showCheckbox: boolean;
  showAvatar: boolean;
}>) => JSX.Element;
export type DashletEmptyMessageProps = PropsWithChildren<{
  sx?: BoxProps['sx'];
}>;
export declare const DashletEmptyMessage: ({ children, sx }: DashletEmptyMessageProps) => JSX.Element;
export interface PersonFullNameProps {
  person: Person;
}
export declare function PersonFullName({ person }: PersonFullNameProps): JSX.Element;
