import type { FileCoverageData } from "istanbul-lib-coverage"; import { Stmt, Expr } from "../parser"; import { BrsInvalid, BrsType } from "../brsTypes"; export declare class FileCoverage implements Expr.Visitor, Stmt.Visitor { readonly filePath: string; private statements; constructor(filePath: string); /** * Returns the StatementCoverage object for a given statement. * @param statement statement for which to get coverage. */ private get; /** * Creates a StatementCoverage object for a given statement. * @param statement statement to add. */ private add; /** * Generates a key for the statement using its location and type. * @param statement statement for which to generate a key. */ getStatementKey(statement: Expr.Expression | Stmt.Statement): string; /** * Logs a hit to a particular statement, indicating the statement was used. * @param statement statement for which to log a hit */ logHit(statement: Expr.Expression | Stmt.Statement): void; /** * Converts the coverage data to a POJO that's more friendly for consumers. */ getCoverage(): FileCoverageData; /** * STATEMENTS */ visitAssignment(statement: Stmt.Assignment): BrsInvalid; visitExpression(statement: Stmt.Expression): BrsInvalid; visitContinueFor(statement: Stmt.ContinueFor): never; visitExitFor(statement: Stmt.ExitFor): never; visitContinueWhile(statement: Stmt.ContinueWhile): never; visitExitWhile(statement: Stmt.ExitWhile): never; visitPrint(statement: Stmt.Print): BrsInvalid; visitIf(statement: Stmt.If): BrsInvalid; visitBlock(block: Stmt.Block): BrsInvalid; visitTryCatch(statement: Stmt.TryCatch): BrsInvalid; visitThrow(statement: Stmt.Throw): BrsInvalid; visitFor(statement: Stmt.For): BrsInvalid; visitForEach(statement: Stmt.ForEach): BrsInvalid; visitWhile(statement: Stmt.While): BrsInvalid; visitNamedFunction(statement: Stmt.Function): BrsInvalid; visitReturn(statement: Stmt.Return): never; visitDottedSet(statement: Stmt.DottedSet): BrsInvalid; visitIndexedSet(statement: Stmt.IndexedSet): BrsInvalid; visitIncrement(statement: Stmt.Increment): BrsInvalid; visitLibrary(statement: Stmt.Library): BrsInvalid; visitDim(statement: Stmt.Dim): BrsInvalid; /** * EXPRESSIONS */ visitBinary(expression: Expr.Binary): BrsInvalid; visitCall(expression: Expr.Call): BrsInvalid; visitAnonymousFunction(func: Expr.Function): BrsInvalid; visitDottedGet(expression: Expr.DottedGet): BrsInvalid; visitIndexedGet(expression: Expr.IndexedGet): BrsInvalid; visitGrouping(expression: Expr.Grouping): BrsInvalid; visitLiteral(expression: Expr.Literal): BrsInvalid; visitArrayLiteral(expression: Expr.ArrayLiteral): BrsInvalid; visitAALiteral(expression: Expr.AALiteral): BrsInvalid; visitUnary(expression: Expr.Unary): BrsInvalid; visitVariable(expression: Expr.Variable): BrsInvalid; evaluate(this: FileCoverage, expression: Expr.Expression): BrsType; execute(this: FileCoverage, statement: Stmt.Statement): BrsType; }