declare interface Feature {
    bands: number[];
    deltaBands: number[];
    volume: number;
    centroid: number;
}

export declare class Lipsync {
    features: Feature | null;
    viseme: VISEMES;
    private audioContext;
    private analyser;
    private dataArray;
    private history;
    private historySize;
    private sampleRate;
    private binWidth;
    private bands;
    private audioSource?;
    private state;
    constructor(params?: {
        fftSize: number;
        historySize: number;
    });
    connectAudio(audio: HTMLMediaElement): void;
    connectMicrophone(): Promise<MediaStreamAudioSourceNode>;
    extractFeatures(): {
        bands: number[];
        deltaBands: number[];
        volume: number;
        centroid: number;
    };
    getAveragedFeatures(): Feature;
    detectState(): void;
    computeVisemeScores(current: Feature, avg: Feature, dVolume: number, dCentroid: number): {
        viseme_sil: number;
        viseme_PP: number;
        viseme_FF: number;
        viseme_TH: number;
        viseme_DD: number;
        viseme_kk: number;
        viseme_CH: number;
        viseme_SS: number;
        viseme_nn: number;
        viseme_RR: number;
        viseme_aa: number;
        viseme_E: number;
        viseme_I: number;
        viseme_O: number;
        viseme_U: number;
    };
    adjustScoresForConsistency(scores: Record<VISEMES, number>): {
        viseme_sil: number;
        viseme_PP: number;
        viseme_FF: number;
        viseme_TH: number;
        viseme_DD: number;
        viseme_kk: number;
        viseme_CH: number;
        viseme_SS: number;
        viseme_nn: number;
        viseme_RR: number;
        viseme_aa: number;
        viseme_E: number;
        viseme_I: number;
        viseme_O: number;
        viseme_U: number;
    };
    processAudio(): void;
}

export declare enum VISEMES {
    sil = "viseme_sil",
    PP = "viseme_PP",
    FF = "viseme_FF",
    TH = "viseme_TH",
    DD = "viseme_DD",
    kk = "viseme_kk",
    CH = "viseme_CH",
    SS = "viseme_SS",
    nn = "viseme_nn",
    RR = "viseme_RR",
    aa = "viseme_aa",
    E = "viseme_E",
    I = "viseme_I",
    O = "viseme_O",
    U = "viseme_U"
}

export { }
