import type { BindingPattern, Decl } from "./declaration";
import type { Expr, VariableReference } from "./expression";
import type { FunctionlessNode } from "./node";
import { NodeKind } from "./node-kind";
import type { Stmt } from "./statement";
export declare function isNode(a: any): a is FunctionlessNode;
export declare const isErr: (a: any) => a is import("./error").Err;
export declare function isExpr(a: any): a is Expr;
export declare const isArgument: (a: any) => a is import("./expression").Argument;
export declare const isArrayLiteralExpr: (a: any) => a is import("./expression").ArrayLiteralExpr;
export declare const isArrowFunctionExpr: (a: any) => a is import("./expression").ArrowFunctionExpr<import("./util").AnyFunction>;
export declare const isAwaitExpr: (a: any) => a is import("./expression").AwaitExpr;
export declare const isBigIntExpr: (a: any) => a is import("./expression").BigIntExpr;
export declare const isBinaryExpr: (a: any) => a is import("./expression").BinaryExpr;
export declare const isBooleanLiteralExpr: (a: any) => a is import("./expression").BooleanLiteralExpr;
export declare const isCallExpr: (a: any) => a is import("./expression").CallExpr<Expr | import("./expression").ImportKeyword | import("./expression").SuperKeyword>;
export declare const isClassExpr: (a: any) => a is import("./expression").ClassExpr<import("./util").AnyClass>;
export declare const isComputedPropertyNameExpr: (a: any) => a is import("./expression").ComputedPropertyNameExpr;
export declare const isConditionExpr: (a: any) => a is import("./expression").ConditionExpr;
export declare const isDeleteExpr: (a: any) => a is import("./expression").DeleteExpr;
export declare const isElementAccessExpr: (a: any) => a is import("./expression").ElementAccessExpr;
export declare const isFunctionExpr: (a: any) => a is import("./expression").FunctionExpr<import("./util").AnyFunction>;
export declare const isIdentifier: (a: any) => a is import("./expression").Identifier;
export declare const isImportKeyword: (a: any) => a is import("./expression").ImportKeyword;
export declare const isNewExpr: (a: any) => a is import("./expression").NewExpr;
export declare const isNoSubstitutionTemplateLiteral: (a: any) => a is import("./expression").NoSubstitutionTemplateLiteralExpr;
export declare const isNullLiteralExpr: (a: any) => a is import("./expression").NullLiteralExpr;
export declare const isNumberLiteralExpr: (a: any) => a is import("./expression").NumberLiteralExpr;
export declare const isObjectLiteralExpr: (a: any) => a is import("./expression").ObjectLiteralExpr;
export declare const isOmittedExpr: (a: any) => a is import("./expression").OmittedExpr;
export declare const isParenthesizedExpr: (a: any) => a is import("./expression").ParenthesizedExpr;
export declare const isPostfixUnaryExpr: (a: any) => a is import("./expression").PostfixUnaryExpr;
export declare const isPrivateIdentifier: (a: any) => a is import("./expression").PrivateIdentifier;
export declare const isPropAccessExpr: (a: any) => a is import("./expression").PropAccessExpr;
export declare const isPropAssignExpr: (a: any) => a is import("./expression").PropAssignExpr;
export declare const isReferenceExpr: (a: any) => a is import("./expression").ReferenceExpr<unknown>;
export declare const isRegexExpr: (a: any) => a is import("./expression").RegexExpr;
export declare const isSpreadAssignExpr: (a: any) => a is import("./expression").SpreadAssignExpr;
export declare const isSpreadElementExpr: (a: any) => a is import("./expression").SpreadElementExpr;
export declare const isStringLiteralExpr: (a: any) => a is import("./expression").StringLiteralExpr;
export declare const isSuperKeyword: (a: any) => a is import("./expression").SuperKeyword;
export declare const isTemplateExpr: (a: any) => a is import("./expression").TemplateExpr;
export declare const isThisExpr: (a: any) => a is import("./expression").ThisExpr<any>;
export declare const isTypeOfExpr: (a: any) => a is import("./expression").TypeOfExpr;
export declare const isUnaryExpr: (a: any) => a is import("./expression").UnaryExpr;
export declare const isUndefinedLiteralExpr: (a: any) => a is import("./expression").UndefinedLiteralExpr;
export declare const isVoidExpr: (a: any) => a is import("./expression").VoidExpr;
export declare const isYieldExpr: (a: any) => a is import("./expression").YieldExpr<boolean>;
export declare const isObjectElementExpr: (a: any) => a is import("./expression").PropAssignExpr | import("./expression").SpreadAssignExpr;
export declare const isLiteralExpr: (a: any) => a is import("./expression").ArrayLiteralExpr | import("./expression").BooleanLiteralExpr | import("./expression").NullLiteralExpr | import("./expression").NumberLiteralExpr | import("./expression").ObjectLiteralExpr | import("./expression").StringLiteralExpr | import("./expression").UndefinedLiteralExpr;
export declare const isLiteralPrimitiveExpr: (a: any) => a is import("./expression").BooleanLiteralExpr | import("./expression").NullLiteralExpr | import("./expression").NumberLiteralExpr | import("./expression").StringLiteralExpr;
export declare const isTemplateHead: (a: any) => a is import("./expression").TemplateHead;
export declare const isTemplateSpan: (a: any) => a is import("./expression").TemplateSpan<import("./expression").TemplateMiddle | import("./expression").TemplateTail>;
export declare const isTemplateMiddle: (a: any) => a is import("./expression").TemplateMiddle;
export declare const isTemplateTail: (a: any) => a is import("./expression").TemplateTail;
export declare function isStmt(a: any): a is Stmt;
export declare const isBlockStmt: (a: any) => a is import("./statement").BlockStmt;
export declare const isBreakStmt: (a: any) => a is import("./statement").BreakStmt;
export declare const isCaseClause: (a: any) => a is import("./statement").CaseClause;
export declare const isCatchClause: (a: any) => a is import("./statement").CatchClause;
export declare const isContinueStmt: (a: any) => a is import("./statement").ContinueStmt;
export declare const isDebuggerStmt: (a: any) => a is import("./statement").DebuggerStmt;
export declare const isDefaultClause: (a: any) => a is import("./statement").DefaultClause;
export declare const isDoStmt: (a: any) => a is import("./statement").DoStmt;
export declare const isEmptyStmt: (a: any) => a is import("./statement").EmptyStmt;
export declare const isExprStmt: (a: any) => a is import("./statement").ExprStmt;
export declare const isForInStmt: (a: any) => a is import("./statement").ForInStmt;
export declare const isForOfStmt: (a: any) => a is import("./statement").ForOfStmt;
export declare const isForStmt: (a: any) => a is import("./statement").ForStmt;
export declare const isIfStmt: (a: any) => a is import("./statement").IfStmt;
export declare const isLabelledStmt: (a: any) => a is import("./statement").LabelledStmt;
export declare const isReturnStmt: (a: any) => a is import("./statement").ReturnStmt;
export declare const isSwitchStmt: (a: any) => a is import("./statement").SwitchStmt;
export declare const isTaggedTemplateExpr: (a: any) => a is import("./expression").TaggedTemplateExpr;
export declare const isThrowStmt: (a: any) => a is import("./statement").ThrowStmt;
export declare const isTryStmt: (a: any) => a is import("./statement").TryStmt;
export declare const isVariableStmt: (a: any) => a is import("./statement").VariableStmt;
export declare const isWhileStmt: (a: any) => a is import("./statement").WhileStmt;
export declare const isWithStmt: (a: any) => a is import("./statement").WithStmt;
export declare const isSwitchClause: (a: any) => a is import("./statement").CaseClause | import("./statement").DefaultClause;
export declare function isDecl(a: any): a is Decl;
export declare const isFunctionLike: (a: any) => a is import("./declaration").FunctionDecl<import("./util").AnyFunction> | import("./expression").ArrowFunctionExpr<import("./util").AnyFunction> | import("./expression").FunctionExpr<import("./util").AnyFunction>;
export declare const isClassDecl: (a: any) => a is import("./declaration").ClassDecl<import("./util").AnyClass>;
export declare const isClassStaticBlockDecl: (a: any) => a is import("./declaration").ClassStaticBlockDecl;
export declare const isConstructorDecl: (a: any) => a is import("./declaration").ConstructorDecl;
export declare const isFunctionDecl: (a: any) => a is import("./declaration").FunctionDecl<import("./util").AnyFunction>;
export declare const isGetAccessorDecl: (a: any) => a is import("./declaration").GetAccessorDecl;
export declare const isMethodDecl: (a: any) => a is import("./declaration").MethodDecl;
export declare const isParameterDecl: (a: any) => a is import("./declaration").ParameterDecl;
export declare const isPropDecl: (a: any) => a is import("./declaration").PropDecl;
export declare const isSetAccessorDecl: (a: any) => a is import("./declaration").SetAccessorDecl;
export declare const isClassMember: (a: any) => a is import("./declaration").ClassStaticBlockDecl | import("./declaration").ConstructorDecl | import("./declaration").MethodDecl | import("./declaration").PropDecl;
export declare const isVariableDecl: (a: any) => a is import("./declaration").VariableDecl<Expr | undefined>;
export declare const isArrayBinding: (a: any) => a is import("./declaration").ArrayBinding;
export declare const isBindingElem: (a: any) => a is import("./declaration").BindingElem;
export declare const isObjectBinding: (a: any) => a is import("./declaration").ObjectBinding;
export declare const isPropName: (a: any) => a is import("./expression").ComputedPropertyNameExpr | import("./expression").Identifier | import("./expression").NumberLiteralExpr | import("./expression").StringLiteralExpr;
export declare const isBindingPattern: (a: any) => a is BindingPattern;
export declare const isVariableDeclList: (a: any) => a is import("./declaration").VariableDeclList;
export declare function typeGuard<Kind extends NodeKind>(...kinds: Kind[]): (a: any) => a is Extract<FunctionlessNode, {
    kind: Kind;
}>;
export declare function isVariableReference(expr: Expr): expr is VariableReference;
//# sourceMappingURL=guards.d.ts.map