import { cache } from "../data/cache.js"; import { Distribution } from "./distribution.js"; import { LogNum } from "./logNum.js"; export declare const LETTERS = "abcdefghijklmnopqrstuvwxyz"; export declare const VOWELS = "aeiou"; export type LetterKind = { one: string; other: string; letters: string; }; export declare const letterKind: { readonly consonant: { readonly one: "consonant"; readonly other: "consonants"; readonly letters: "bcdfghjklmnpqrstvwxyz"; }; readonly letter: { readonly one: "letter"; readonly other: "letters"; readonly letters: "abcdefghijklmnopqrstuvwxyz"; }; readonly vowel: { readonly one: "vowel"; readonly other: "vowels"; readonly letters: "aeiou"; }; }; /** * Info about the letter distribution of a wordlist. * * All of these methods rely on letters being drawn iid. This is the case for * letters that come from random indexing. This is *not* the case for things * like random substrings. */ export declare class LetterDistribution { readonly distribution: Distribution; private readonly lengthToProbs; constructor(wordlist: string[], useCache?: boolean); dump(): NonNullable; /** * Log probability that a list of letters is iid drawn from this distribution, * via chi-squared. */ probUnordered(letters: string[]): LogNum; /** Over- and under-represented letters, at 2 sigma. */ outliers(letters: string[]): { high: string[]; low: string[]; }; /** * Log probability that words of given lengths share common letters, in the * same order. */ probCommonOrdered(common: number, lengths: number[]): LogNum; /** Log probability that k letters are all equal. */ probEqual(k: number): LogNum; /** Log probability that k letters are all equal, except for one. */ probAlmostEqual(k: number): LogNum; /** Log probability that k letters have exactly two values. */ probTwoDistinct(k: number): LogNum; /** Log probability that k letters are consecutive. */ probConsecutive(k: number): LogNum; /** * Log probability that k letters have distinct values, all at least min. */ probDistinct(k: number, min?: string): LogNum; /** Log probability that k letters can be grouped in equal pairs. */ probPaired(k: number): LogNum; /** Log probability that k letters form a word. */ probWord(k: number): LogNum; /** Log probability that k letters form an anagram of a word. */ probAnagram(k: number): LogNum; /** Log probability that k letters are all vowels. */ probVowels(k: number): LogNum; /** Log probability that k letters are all consonants. */ probConsonants(k: number): LogNum; /** * Log probability that n words, each of length k, have the same pattern of * vowels and consonants. */ probEqualVowelPattern(n: number, k: number): LogNum; } //# sourceMappingURL=letterDistribution.d.ts.map