import { ComponentOptionsMixin, DefineComponent, PropType } from 'vue';

declare const Searchbar: DefineComponent<
  {
    disabled: {
      type: PropType<boolean>;
    };
    small: {
      type: PropType<boolean>;
    };
    noShadow: {
      type: PropType<boolean>;
    };
    noHairline: {
      type: PropType<boolean>;
    };
    value: {
      type: PropType<string | number | any[]>;
    };
    expandable: {
      type: PropType<boolean>;
    };
    inline: {
      type: PropType<boolean>;
    };
    searchContainer: {
      type: PropType<string | object>;
    };
    backdropEl: {
      type: PropType<string | object>;
    };
    form: {
      type: PropType<boolean>;
      default: boolean;
    };
    placeholder: {
      type: PropType<string>;
      default: string;
    };
    spellcheck: {
      type: PropType<boolean>;
      default: undefined;
    };
    disableButton: {
      type: PropType<boolean>;
      default: boolean;
    };
    disableButtonText: {
      type: PropType<string>;
      default: string;
    };
    clearButton: {
      type: PropType<boolean>;
      default: boolean;
    };
    inputEvents: {
      type: PropType<string>;
      default: string;
    };
    searchIn: {
      type: PropType<string>;
      default: string;
    };
    searchItem: {
      type: PropType<string>;
      default: string;
    };
    searchGroup: {
      type: PropType<string>;
      default: string;
    };
    searchGroupTitle: {
      type: PropType<string>;
      default: string;
    };
    foundEl: {
      type: PropType<string | object>;
      default: string;
    };
    notFoundEl: {
      type: PropType<string | object>;
      default: string;
    };
    backdrop: {
      type: PropType<boolean>;
      default: undefined;
    };
    hideOnEnableEl: {
      type: PropType<string | object>;
      default: string;
    };
    hideOnSearchEl: {
      type: PropType<string | object>;
      default: string;
    };
    ignore: {
      type: PropType<string>;
      default: string;
    };
    customSearch: {
      type: PropType<boolean>;
      default: boolean;
    };
    removeDiacritics: {
      type: PropType<boolean>;
      default: boolean;
    };
    hideDividers: {
      type: PropType<boolean>;
      default: boolean;
    };
    hideGroups: {
      type: PropType<boolean>;
      default: boolean;
    };
    init: {
      type: PropType<boolean>;
      default: boolean;
    };
    color: {
      type: PropType<string>;
    };
    colorTheme: {
      type: PropType<string>;
    };
    textColor: {
      type: PropType<string>;
    };
    bgColor: {
      type: PropType<string>;
    };
    borderColor: {
      type: PropType<string>;
    };
    rippleColor: {
      type: PropType<string>;
    };
    themeDark: {
      type: PropType<boolean>;
    };
  },
  () => JSX.Element,
  unknown,
  {},
  {},
  ComponentOptionsMixin,
  ComponentOptionsMixin,
  (
    | 'change'
    | 'input'
    | 'focus'
    | 'blur'
    | 'submit'
    | 'click:clear'
    | 'click:disable'
    | 'searchbar:search'
    | 'searchbar:clear'
    | 'searchbar:enable'
    | 'searchbar:disable'
    | 'update:value'
  )[],
  | 'change'
  | 'input'
  | 'focus'
  | 'blur'
  | 'submit'
  | 'click:clear'
  | 'click:disable'
  | 'searchbar:search'
  | 'searchbar:clear'
  | 'searchbar:enable'
  | 'searchbar:disable'
  | 'update:value'
>;

export default Searchbar;
