import { Expression } from "@babel/types";
export declare function handleExpression(path: any, state: any): void;
/**
* Wrap path with react component
* @param path represents path of expression to be wrapped by
component
* @param state
*/
export declare function handleJSXWrappableExpression(path: any, state: any): import("@babel/types").JSXElement | null | undefined;
export declare function handleExpressionRecursive(path: any, state: RecurseState): string;
export declare function handleIdentifier(path: any, state: RecurseState): string;
export declare function handleMemberExpression(path: any, state: RecurseState): string;
export declare function handleCallExpression(path: any, state: RecurseState): string;
export declare function handleStringLiteral(path: any, state: RecurseState): any;
export declare function handleTemplateLiteral(path: any, state: RecurseState): string;
export declare function handleConditionalExpression(path: any, state: RecurseState): string;
/**
* given an interpolation node and variables wrap in a react component
* @param childNode represents the interpolation text
* @param variables key = variable name, value = expression node
*/
export declare function wrapTrComponent(childNode: any, variables: Map): import("@babel/types").JSXElement;
/**
* check if a term in the binary question or template expression is a tr function call
* return if component is valid and if it has any non-space text
* i.e. tr("text") + "text" returns false
* i.e. `${tr("text") + text}` returns false
*/
export declare function isExpressionValid(path: any): ExpressionProperties;
export declare const expressionVisitor: {
Expression(path: any, state: any): void;
};
declare type RecurseState = {
nested: boolean;
jsxWrappable: boolean;
variables: Map;
placeholderIndex: number;
};
declare type ExpressionProperties = {
isValid: boolean;
hasText: boolean;
};
export {};