/// <reference path="../../../../src/@types/output.d.ts" />
/// <reference path="../../../../src/@types/parameter.d.ts" />
/// <reference path="../../../../src/@types/common.d.ts" />
/// <reference path="../../../../src/@types/decorator.d.ts" />
/// <reference path="../../../../src/@types/expression.d.ts" />
/// <reference path="../../../../src/@types/literal.d.ts" />
/// <reference path="../../../../src/@types/module.d.ts" />
/// <reference path="../../../../src/@types/property.d.ts" />
/// <reference path="../../../../src/@types/statement.d.ts" />
/// <reference path="../../../../src/@types/type.d.ts" />
import type { ST_Expression, ST_TypedExpression } from 'SmartTS';
import { ST_ExpressionKind } from '../../../enums/expression';
export declare const hasType: (expr: ST_Expression) => expr is ST_TypedExpression;
export declare const isAttrAccessExpr: (expr: ST_Expression) => expr is {
    kind: ST_ExpressionKind.AttrAccessExpr;
    attr: string;
    type: import("SmartTS").ST_TypeDef;
    prev: import("SmartTS").Nullable<ST_Expression>;
} & {
    line: import("SmartTS").FileLineInfo;
};
export declare const isExpression: (arg: {
    kind: string;
}) => arg is ST_Expression;
declare const expression: {
    hasType: (expr: ST_Expression) => expr is ST_TypedExpression;
    isAttrAccessExpr: (expr: ST_Expression) => expr is {
        kind: ST_ExpressionKind.AttrAccessExpr;
        attr: string;
        type: import("SmartTS").ST_TypeDef;
        prev: import("SmartTS").Nullable<ST_Expression>;
    } & {
        line: import("SmartTS").FileLineInfo;
    };
    isExpression: (arg: {
        kind: string;
    }) => arg is ST_Expression;
};
export default expression;
