import { FunctionlessNode } from "@functionless/ast";
import { SourceNode } from "source-map";
export declare function undefinedExpr(): string;
export declare function nullExpr(): string;
export declare function trueExpr(): string;
export declare function falseExpr(): string;
export declare function idExpr(name: string): string;
export declare function stringExpr(name: string): string;
export declare function numberExpr(num: number): string;
export declare function bigIntExpr(num: bigint): string;
export declare function regExpr(regex: RegExp): string;
export declare function objectExpr(obj: Record<string, SourceNodeOrString>): SourceNodeOrString;
export declare type SourceNodeOrString = string | SourceNode;
export declare function createSourceNodeWithoutSpan<S extends SourceNodeOrString[]>(...exprs: S): S extends string ? string : SourceNodeOrString;
export declare function createSourceNode(node: FunctionlessNode, chunks: string | SourceNodeOrString[]): SourceNode;
export declare function propAccessExpr<S extends SourceNodeOrString>(expr: S, name: string): S extends string ? string : SourceNodeOrString;
export declare function assignExpr(left: SourceNodeOrString | SourceNode, right: SourceNodeOrString | SourceNode): SourceNodeOrString;
export declare function callExpr<E extends SourceNodeOrString, A extends SourceNodeOrString>(expr: E, args: A[]): E | A extends string ? string : SourceNodeOrString;
export declare function newExpr(expr: string, args: string[]): string;
export declare function exprStmt(expr: SourceNodeOrString | SourceNode): SourceNodeOrString;
export declare function setPropertyStmt(on: SourceNodeOrString, key: string, value: SourceNodeOrString): SourceNodeOrString;
export declare function setPropertyExpr(on: SourceNodeOrString, key: string, value: SourceNodeOrString): SourceNodeOrString;
export declare function definePropertyExpr(on: SourceNodeOrString, name: SourceNodeOrString, value: SourceNodeOrString): SourceNodeOrString;
export declare function getOwnPropertyDescriptorExpr(obj: SourceNodeOrString, key: SourceNodeOrString): SourceNodeOrString;
//# sourceMappingURL=util.d.ts.map