import * as M from "materialize-css";
import * as jQuery from "jquery";

// Test Component Initialization

// $ExpectType Autocomplete
M.Autocomplete.init(document.querySelector('.whatever')!);
// $ExpectType Autocomplete[]
M.Autocomplete.init(document.querySelectorAll('.whatever'));
// $ExpectType Autocomplete[]
M.Autocomplete.init(jQuery('.whatever'));
// $ExpectType Autocomplete[]
M.Autocomplete.init(cash('.whatever'));
// Autocomplete
// $ExpectType Autocomplete
new materialize.Autocomplete(elem);
// $ExpectType Autocomplete
const autocomplete = new materialize.Autocomplete(elem, {
    data: {
        Apple: null,
        Google: "https://placehold.it/250x250"
    },
    minLength: 3,
    onAutocomplete(text) {
        // $ExpectType Autocomplete
        this;
        // $ExpectType string
        text;
    },
    sortFunction(a, b, input) {
        // $ExpectType string
        a;
        // $ExpectType string
        b;
        // $ExpectType string
        input;
        return 0;
    }
});
// $ExpectType void
autocomplete.updateData({ Microsoft: null });
// $ExpectType void
autocomplete.destroy();
// $ExpectType AutocompleteOptions