/// <reference types="dom-speech-recognition" />
export interface GrammarItemType {
    text: string;
    id: string;
}
export default class Speech {
    recognition: SpeechRecognition;
    gramar: {
        [text: string]: GrammarItemType;
    };
    dictionaryLookupTable: {
        [word: string]: string[];
    };
    constructor(grammar?: GrammarItemType[]);
    start: () => void;
    onResult: (event: any) => void;
    onSpeechEnd: () => void;
    onNoMatch: () => void;
    onError: (event: any) => void;
    setGrammar: (grammar: GrammarItemType[]) => void;
    /**
     * Should return a string withough punctuation and all lowercase.
     * @param text the text with punctuation
     */
    static cleanKey: (text: string) => string;
    static cleanAlphaNumeric: (text: string) => string;
    static findClosestMatch: (lookupTable: {
        [word: string]: string[];
    }, spokenSentence: string) => string;
    /**
     * Find closest match for a given sentence based on a lookup table
     * @param lookupTable { [word: string]: string[] } a hashed key value pair where the key is a word and they value is an array of ids of the object where this word occurs
     * @param spokenSentence the sentence we try to match
     */
    static createGrammerLookupTable: (grammar: GrammarItemType[]) => {
        [word: string]: string[];
    };
}
