// @flow
import { type Node } from 'react';
import { type StylableProps } from '../../../mixins/themes';
import { type TestingProps } from '../../../mixins/testing';
import { type AriaProps } from '../../../mixins/aria';
import type { SpaceProps } from '../../../mixins/spacing';
import type { ContainerProps } from '../../../mixins/container';
import type { StackeeProps } from '../../../mixins/stackee';
import type { TranslatedContent } from '../../../types';

export type ListSelectorItem = {
  id: string,
  label: Node,
  disabled?: boolean,
  isNonOptionRow?: boolean,
};
export type ListSelectorProps = {|
  ...StylableProps,
  ...TestingProps,
  ...AriaProps,
  ...SpaceProps,
  ...ContainerProps,
  ...StackeeProps,
  name?: string,
  value: string[], // IDs of items
  onChange: (string[]) => void, // IDs of selected items.
  items: ListSelectorItem[],
  label: TranslatedContent,
  hideLabel?: boolean,
  small?: boolean,
  multiSelect?: boolean,
|};
