<commit_before>(*
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *)

val key : allow_optional:bool -> ('loc, 'loc) Flow_ast.Expression.t -> Key.t option

val get :
  allow_optional:bool -> Context.t -> ('loc, 'loc) Flow_ast.Expression.t -> ALoc.t -> Type.t option

val key_of_pattern : allow_optional:bool -> ('loc, 'loc) Flow_ast.Pattern.t -> Key.t option

val get_of_pattern :
  allow_optional:bool -> Context.t -> ('loc, 'loc) Flow_ast.Pattern.t -> ALoc.t -> Type.t option<commit_msg>Make Refinement API accept typed AST as well<commit_after>(*
 * Copyright (c) Facebook, Inc. and its affiliates.
 *
 * This source code is licensed under the MIT license found in the
 * LICENSE file in the root directory of this source tree.
 *)

val key : allow_optional:bool -> ('loc, 't) Flow_ast.Expression.t -> Key.t option

val get :
  allow_optional:bool -> Context.t -> ('loc, 't) Flow_ast.Expression.t -> ALoc.t -> Type.t option

val key_of_pattern : allow_optional:bool -> ('loc, 't) Flow_ast.Pattern.t -> Key.t option

val get_of_pattern :
  allow_optional:bool -> Context.t -> ('loc, 't) Flow_ast.Pattern.t -> ALoc.t -> Type.t option
{'fraction_non_alphanumeric': 0.13417521704814522, 'fraction_numerical': 0.0, 'mean_word_length': 3.7313432835820897, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 27, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6406268', 'n_tokens_mistral': 410, 'n_tokens_neox': 408, 'n_words': 138}