equality_matcher.d.ts 1.2 KB

123456789101112131415161718192021222324252627282930313233
  1. /**
  2. * @license
  3. * Copyright 2022 Google LLC
  4. *
  5. * Licensed under the Apache License, Version 2.0 (the "License");
  6. * you may not use this file except in compliance with the License.
  7. * You may obtain a copy of the License at
  8. *
  9. * http://www.apache.org/licenses/LICENSE-2.0
  10. *
  11. * Unless required by applicable law or agreed to in writing, software
  12. * distributed under the License is distributed on an "AS IS" BASIS,
  13. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  14. * See the License for the specific language governing permissions and
  15. * limitations under the License.
  16. */
  17. /**
  18. * Duck-typed interface for objects that have an isEqual() method.
  19. *
  20. * Note: This is copied from src/util/misc.ts to avoid importing private types.
  21. */
  22. export interface Equatable<T> {
  23. isEqual(other: T): boolean;
  24. }
  25. /**
  26. * Custom equals override for types that have a free-standing equals functions
  27. * (such as `queryEquals()`).
  28. */
  29. export interface CustomMatcher<T> {
  30. equalsFn: (left: T, right: T) => boolean;
  31. forType: Function;
  32. }
  33. export declare function addEqualityMatcher(...customMatchers: Array<CustomMatcher<any>>): void;