import type { ESTree } from "meriyah";
export type ObfuscatedEngine = "jsfuck" | "jjencode" | "morse" | "freejsobfuscator" | "obfuscator.io" | "unknown";
export interface ObfuscatedIdentifier {
    name: string;
    type: string;
}
export interface ObfuscatedCounters {
    Identifiers: number;
    VariableDeclaration?: {
        const?: number;
        let?: number;
        var?: number;
    };
    VariableDeclarator?: number;
    AssignmentExpression?: number;
    FunctionDeclaration?: number;
    MemberExpression?: Record<string, number>;
    Property?: number;
    UnaryExpression?: number;
    DoubleUnaryExpression?: number;
}
export declare class Deobfuscator {
    #private;
    deepBinaryExpression: number;
    encodedArrayValue: number;
    hasDictionaryString: boolean;
    hasPrefixedIdentifiers: boolean;
    morseLiterals: Set<string>;
    literalScores: number[];
    identifiers: ObfuscatedIdentifier[];
    analyzeString(str: string): void;
    walk(node: ESTree.Node): void;
    aggregateCounters(): ObfuscatedCounters;
    assertObfuscation(): ObfuscatedEngine | null;
}
//# sourceMappingURL=Deobfuscator.d.ts.map