// @flow
import type { TranslatedContent } from '../../../types';
import type { MarginOnlySpaceProps } from '../../../mixins/spacing';
import type { StackeeProps } from '../../../mixins/stackee';
import type { StylableProps } from '../../../mixins/themes';
import type { TestingProps } from '../../../mixins/testing';
import type { FocusEvents } from '../../../mixins/focus';
import type { AriaProps } from '../../../mixins/aria';

export type SearchInputFieldProps = {|
  ...StylableProps,
  ...MarginOnlySpaceProps,
  ...StackeeProps,
  ...FocusEvents,
  ...TestingProps,
  ...AriaProps,
  name?: string,
  onChange: (string, ?SyntheticKeyboardEvent<HTMLInputElement>) => void,
  onClear?: () => void,
  placeholder?: string,
  bold?: boolean,
  large?: boolean,
  value: string,
  label: TranslatedContent,
  hideLabel?: boolean,
  focusOnMount?: boolean,
  /** Label to be used on the X to clear the input */
  clearLabel?: TranslatedContent,
  isExpanded?: boolean,
  resultsListId?: string,
|};
