// @flow
import type { TranslatedContent } from '../../../types';
import type { SpaceKey } from '../../../mixins/spacing';
import type { ContainerProps } from '../../../mixins/container';

export type SelectorItemContext = {|
  name: string,
  managedValue?: string | number | string[],
  stateful?: boolean,
  onChange: (SyntheticInputEvent<HTMLElement>) => void,
|};

export type SelectorProps = {|
  ...ContainerProps,
  name: string,
  type?: 'checkbox' | 'radio',
  onChange: (input: string | number | Array<string>) => void,
  label: TranslatedContent,
  hideLabel?: boolean,
  size?: 'sm' | 'md' | 'lg',
  labelSpacing?: SpaceKey[],
  stateful?: boolean,
  value?: string | Array<string>,
  setManagedValue?: (string | number | Array<string>) => void,
  managedValue?: string | number | Array<string>,
|};
