/*
 * 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';
import { AllItemActions } from '../../models';
import { SxProps } from '@mui/system';
import { IconButtonProps } from '@mui/material/IconButton';
export declare const actionsToBeShown: AllItemActions[];
export declare const List: import('@emotion/styled').StyledComponent<
  import('@mui/material/List').ListOwnProps &
    import('@mui/material/OverridableComponent').CommonProps &
    Omit<
      Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLUListElement>, HTMLUListElement>, 'ref'> & {
        ref?: React.Ref<HTMLUListElement>;
      },
      'className' | 'style' | 'classes' | 'children' | 'sx' | 'dense' | 'disablePadding' | 'subheader'
    > &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export declare const ListSubheader: import('@emotion/styled').StyledComponent<
  import('@mui/material/ListSubheader').ListSubheaderOwnProps &
    import('@mui/material/OverridableComponent').CommonProps &
    Omit<
      Omit<React.DetailedHTMLProps<React.LiHTMLAttributes<HTMLLIElement>, HTMLLIElement>, 'ref'> & {
        ref?: React.Ref<HTMLLIElement>;
      },
      'color' | 'inset' | 'className' | 'style' | 'classes' | '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').ListItemOwnProps &
    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'
      | 'components'
      | 'componentsProps'
      | 'slots'
      | 'slotProps'
      | '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<
  import('@mui/material/Avatar').AvatarOwnProps &
    import('@mui/material/Avatar').AvatarSlotsAndSlotProps &
    import('@mui/material/OverridableComponent').CommonProps &
    Omit<
      Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'ref'> & {
        ref?: React.Ref<HTMLDivElement>;
      },
      | 'className'
      | 'style'
      | 'classes'
      | 'children'
      | 'sx'
      | 'alt'
      | 'src'
      | 'sizes'
      | 'srcSet'
      | 'variant'
      | 'slots'
      | 'slotProps'
      | 'imgProps'
    > &
    import('@mui/system').MUIStyledCommonProps<import('@mui/material/styles').Theme>,
  {},
  {}
>;
export interface PersonAvatarProps {
  person: Person;
  sx?: SxProps;
}
export declare function PersonAvatar(props: PersonAvatarProps): React.JSX.Element;
export declare const getItemSkeleton: ({
  numOfItems,
  showCheckbox,
  showAvatar
}: Partial<{
  numOfItems: number;
  showCheckbox: boolean;
  showAvatar: boolean;
}>) => React.JSX.Element;
export type DashletEmptyMessageProps = PropsWithChildren<{
  sx?: BoxProps['sx'];
}>;
export declare const DashletEmptyMessage: ({ children, sx }: DashletEmptyMessageProps) => React.JSX.Element;
export interface PersonFullNameProps {
  person: Person;
}
export declare function PersonFullName({ person }: PersonFullNameProps): React.JSX.Element;
export declare function Pager(props: {
  totalPages: number;
  totalItems: number;
  currentPage: number;
  rowsPerPage: number;
  onPagePickerChange(page: number): void;
  onPageChange(page: number): void;
  onRowsPerPageChange(rowsPerPage: number): void;
}): React.JSX.Element;
export declare function DashletItemOptions(props: {
  path: string;
  iconButtonProps?: IconButtonProps;
}): React.JSX.Element;
