import { CPPConstruct } from "../core/constructs/CPPConstruct"; import { Program, TranslationUnit } from "../core/compilation/Program"; import { AssignmentExpression } from "../core/constructs/expressions/AssignmentExpression"; import { AnalyticConstruct } from "./predicates"; export declare type CPPConstructTest = (construct: Original) => construct is T; export declare type CPPConstructFunctor = (construct: T, stop: () => void) => void; export declare function constructTest(constructClass: Function & { prototype: T; }): CPPConstructTest; export declare function exploreConstructs(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: CPPConstructTest, fn: CPPConstructFunctor, keepGoing?: { b: boolean; }): void; export declare function exploreConstructs(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: (construct: CPPConstruct) => boolean, fn: CPPConstructFunctor, keepGoing?: { b: boolean; }): void; export declare function exploreConstructs(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: (construct: AnalyticConstruct) => boolean, fn: CPPConstructFunctor, keepGoing?: { b: boolean; }): void; export declare function findConstructs(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: CPPConstructTest): T[]; export declare function findConstructs(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: (construct: CPPConstruct) => boolean): CPPConstruct[]; export declare function findConstructs(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: (construct: AnalyticConstruct) => boolean): AnalyticConstruct[]; export declare function findFirstConstruct(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: CPPConstructTest): T | undefined; export declare function findFirstConstruct(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: (construct: CPPConstruct) => boolean): CPPConstruct | undefined; export declare function findFirstConstruct(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: (construct: AnalyticConstruct) => boolean): AnalyticConstruct | undefined; export declare function containsConstruct(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: CPPConstructTest): boolean; export declare function containsConstruct(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: (construct: CPPConstruct) => boolean): boolean; export declare function containsConstruct(root: CPPConstruct | CPPConstruct[] | TranslationUnit | Program, test: (construct: AnalyticConstruct) => boolean): boolean; export declare function eecs183_l03_03(program: Program): void; export declare function isUpdateAssignment(exp: AnalyticConstruct): exp is AssignmentExpression;