import * as ts from "typescript";
export declare function toExpression(ex: ts.Expression | string): ts.Expression;
export declare function toExpression(ex: ts.Expression | string | undefined): ts.Expression | undefined;
export declare function toIdentifier(ex: ts.Identifier | string): ts.Identifier;
export declare function toIdentifier(ex: ts.Identifier | string | undefined): ts.Identifier | undefined;
export declare function toLiteral(ex: ts.Expression | string | number | bigint): ts.Expression;
export declare function toLiteral(ex: ts.Expression | string | number | bigint | undefined): ts.Expression | undefined;
export declare function toPropertyName(ex: ts.PropertyName | string): ts.PropertyName;
export declare function toPropertyName(ex: ts.PropertyName | string | undefined): ts.PropertyName | undefined;
export declare function isValidIdentifier(str: string): boolean;
export declare function isIdentifier(n: unknown | null | undefined): n is ts.Identifier;
export declare function createCall(expression: ts.Expression | string, { typeArgs, args }?: {
    typeArgs?: ts.TypeNode[];
    args?: ts.Expression[];
}): ts.CallExpression;
export declare function createMethodCall(method: string, opts: {
    typeArgs?: ts.TypeNode[];
    args?: ts.Expression[];
}): ts.CallExpression;
export declare function createTemplateString(head: string, spans: Array<{
    literal: string;
    expression: ts.Expression;
}>): ts.Expression;
export declare function createObjectLiteral(props: Array<[string, string | ts.Expression]>): ts.ObjectLiteralExpression;
export declare function createArrowFunction(parameters: ts.ParameterDeclaration[], body: ts.ConciseBody, { modifiers, typeParameters, type, equalsGreaterThanToken }?: {
    modifiers?: ts.Modifier[];
    typeParameters?: ts.TypeParameterDeclaration[];
    type?: ts.TypeNode;
    equalsGreaterThanToken?: ts.EqualsGreaterThanToken;
}): ts.ArrowFunction;
export declare function createObjectBinding(elements: Array<{
    name: string | ts.BindingName;
    dotDotDotToken?: ts.DotDotDotToken;
    propertyName?: string | ts.PropertyName;
    initializer?: ts.Expression;
}>): ts.ObjectBindingPattern;
export declare function changePropertyValue(o: ts.ObjectLiteralExpression, property: string, value: ts.Expression): ts.ObjectLiteralExpression;
export declare function upsertPropertyValue(o: ts.ObjectLiteralExpression, property: string, value: ts.Expression): ts.ObjectLiteralExpression;
export declare function addComment<T extends ts.Node>(node: T, comment?: string): T;
