import * as ts from 'typescript';
import { Writer } from '../../cli/writer';
import { Project } from '../project';
import { TypeScriptWalker } from './ast';
/**
 * EvilSniffer walks the TypeScript project and errors if it sees dangerous
 * method like `eval`, `new Function`, `setTimeout(str)`, and so on.
 */
export declare class EvilSniffer extends TypeScriptWalker {
    protected visit(node: ts.Node): any;
}
/**
 * WriterReporter prompts the user whether to continue if dangerous
 * eval functions are found.
 */
export declare class WriterReporter {
    private readonly project;
    constructor(project: Project);
    /**
     * Checks that eval functions are not used, or asks the user to confirm
     * they they understand the risks using the writer. Returns whether
     * publishing should be continued.
     */
    checkEvil(writer: Writer): Promise<boolean>;
}
