import ts from 'typescript';
export declare const newLineIdentifier: ts.Identifier;
export type ResourceTsParameters = {
    readonly additionalImportedBackendIdentifiers?: Readonly<Record<string, Set<string>>>;
    readonly backendFunctionConstruct: string;
    readonly functionCallParameter: ts.ObjectLiteralExpression;
    readonly exportedVariableName: ts.Identifier;
    readonly postImportStatements?: readonly ts.Node[];
    readonly postExportStatements?: readonly ts.Node[];
};
export declare class TS {
    static printNodes(nodes: ts.NodeArray<ts.Node>, printWidth?: number): string;
    static printNode(node: ts.Node): string;
    static declareConst(name: string, initializer: ts.Expression): ts.VariableStatement;
    static propAccess(root: string | ts.Expression, ...segments: string[]): ts.Expression;
    static constFromBackend(name: string, ...path: string[]): ts.VariableStatement;
    static namedImport(source: string, ...identifiers: string[]): ts.ImportDeclaration;
    static typeImport(source: string, ...identifiers: string[]): ts.ImportDeclaration;
    static namespaceImport(alias: string, source: string): ts.ImportDeclaration;
    static castAssign(expr: ts.Expression, typeName: string, prop: string, value: ts.Expression): ts.ExpressionStatement;
    static stringProp(key: string, value: string): ts.PropertyAssignment;
    static enumProp(key: string, enumName: string, value: string): ts.PropertyAssignment;
    static exportedFunction(name: string, body: readonly ts.Statement[], extraParams?: readonly ts.ParameterDeclaration[]): ts.FunctionDeclaration;
    static assignProp(target: string, property: string, value: number | string | boolean | string[] | object | undefined): ts.ExpressionStatement;
    static jsValue(value: number | string | boolean | string[] | object | undefined): ts.Expression;
    static createBranchNameDeclaration(): ts.VariableStatement;
    static retentionLoop(stackNodeExpr: ts.Expression, types: readonly string[]): ts.ForOfStatement;
    static extractFilePathFromHandler(handler: string): string;
    static renderResourceTsFile({ additionalImportedBackendIdentifiers, backendFunctionConstruct, functionCallParameter, exportedVariableName, postImportStatements, postExportStatements, }: ResourceTsParameters): ts.NodeArray<ts.Node>;
    private static renderImportStatements;
}
//# sourceMappingURL=ts.d.ts.map