export interface EditDistance {
    name: String;
    calculateDistance(source: string, target: string): number;
}
export interface Profile {
    includes: Array<{
        k: string;
        v: Array<number>;
    }>;
    ignores: Array<string>;
}
export interface Tokenizer {
    tokenize(input: string): Array<Token>;
}
export interface DataStore {
    name: string;
    initialize(): Promise<void>;
    isInitialized(): boolean;
    setLanguage(language: string): Promise<void>;
    pushTerm(value: string): Promise<number>;
    getTermAt(index: number): Promise<string>;
    getTermsAt(indexes: Array<number>): Promise<Array<string>>;
    getEntry(key: string): Promise<Array<number>>;
    getEntries(keys: Array<string>): Promise<Array<Array<number>>>;
    setEntry(key: string, value: Array<number>): Promise<boolean>;
    hasEntry(key: string): Promise<boolean>;
    maxEntryLength(): Promise<number>;
    clear(): Promise<void>;
}
export declare class Token {
    value: string;
    tag: string;
    alphabet: string;
    distance: number;
    constructor(value: string, tag?: string, alphabet?: string, distance?: number);
}
export declare class Suggestion {
    term: string;
    suggestion: string;
    distance: number;
    frequency: number;
    constructor(term: string, suggestion: string, distance?: number, frequency?: number);
}
export declare class Correction {
    input: string;
    output: string;
    suggestions: Array<Suggestion>;
    constructor(input: string, output: string, suggestions?: Array<Suggestion>);
}
export declare class DictionaryEntry extends Array {
    constructor(frequency?: number, ...suggestions: Array<number>);
}
