import * as ts from "typescript"; import { SymbolicValue } from "./symbolicValues"; import { Constraint } from "./constraints"; export declare class ProgramState { private readonly symbolicValues; private readonly expressionStack; private readonly constraints; static empty(): ProgramState; private constructor(); sv(symbol: ts.Symbol): SymbolicValue | undefined; setSV(symbol: ts.Symbol, sv: SymbolicValue): ProgramState; pushSV(sv: SymbolicValue): ProgramState; popSV(): [SymbolicValue | undefined, ProgramState]; getStackSize(): number; constrain(constraint: Constraint): ProgramState | undefined; constrainToTruthy(): ProgramState | undefined; constrainToFalsy(): ProgramState | undefined; getConstraints(sv: SymbolicValue): Constraint[]; hasEmptyStack(): boolean; toString(): string; isEqualTo(another: ProgramState): boolean; private areSymbolsEqual; private areSymbolicValuesEqual; private areSymbolConstraintsEqual; private areTopStackConstraintsEqual; } export declare function createInitialState(declaration: ts.FunctionLikeDeclaration, program: ts.Program): ProgramState;