import type * as ts from 'typescript';
/**
 * Remove TypeScript region blocks by their name, including nested regions.
 *
 * @param sourceCode - The TypeScript source code as a string.
 * @param regionName - The name of the region to remove.
 * @returns Modified TypeScript code without the specified regions.
 */
export declare const UtilsTypescript__NS__removeRegionByName: (sourceCode: string, regionName: string) => string;
export interface UtilsTypescript__NS__ExportInfo {
    type: 'class' | 'function' | 'const' | 'let' | 'var' | 'enum' | 'type' | 'interface' | 'default' | 'module' | 'namespace';
    name: string;
}
/**
 * Function to extract exports from a TypeScript file
 */
export declare const UtilsTypescript__NS__exportsFromFile: (filePath: string) => UtilsTypescript__NS__ExportInfo[];
/**
 * Function to extract exports from a TypeScript file
 */
export declare const UtilsTypescript__NS__exportsFromContent: (fileContent: string) => UtilsTypescript__NS__ExportInfo[];
export type UtilsTypescript__NS__RedefinedExportInfo = {
    exportedName: string;
    originalName: string;
    from: string | null;
    isStarExport: boolean;
};
/**
 * Extracts redefined exports like:
 *   export { Column as CustomColumn } from 'x';
 *   export { Foo } from 'y';
 *   export * from 'z';
 */
export declare const UtilsTypescript__NS__exportsRedefinedFromContent: (fileContent: string) => UtilsTypescript__NS__RedefinedExportInfo[];
/**
 * Function to extract exports from a TypeScript file
 */
export declare const UtilsTypescript__NS__exportsRedefinedFromFile: (filePath: string) => UtilsTypescript__NS__RedefinedExportInfo[];
export declare const UtilsTypescript__NS__extractDefaultClassNameFromString: (sourceCode: string) => string | undefined;
export declare const UtilsTypescript__NS__extractClassNameFromString: (sourceCode: string) => string[];
export declare const UtilsTypescript__NS__extractClassNamesFromFile: (absoluteFilePath: string) => string[];
export declare const UtilsTypescript__NS__extractDefaultClassNameFromFile: (absoluteFilePath: string) => string;
export declare const UtilsTypescript__NS__formatFile: (absPathToFile: string | string[]) => void;
export declare const UtilsTypescript__NS__formatAllFilesInsideFolder: (absPathToFolder: string) => void;
export declare const UtilsTypescript__NS__eslintFixFile: (absPathToFile: string | string[]) => void;
export declare const UtilsTypescript__NS__eslintFixAllFilesInsideFolderAsync: (absPathToFolder: string | string[]) => Promise<void>;
/**
 * @deprecated use eslintFixAllFilesInsideFolderAsync
 */
export declare const UtilsTypescript__NS__eslintFixAllFilesInsideFolder: (absPathToFolder: string | string[]) => void;
export declare const UtilsTypescript__NS__getTaonContextFromContent: (fileContent: string) => string[];
export declare const UtilsTypescript__NS__getTaonContextsNamesFromFile: (tsAbsFilePath: string) => string[];
export declare const UtilsTypescript__NS__extractAngularComponentSelectors: (fileAbsPath: string) => {
    className: string;
    selector: string;
}[];
export declare const UtilsTypescript__NS__wrapWithComment: (oneLineComment: string, absDestFilePath: string) => any;
/**
 * Attempts to set or add an exported const with given name and value.
 */
export declare const UtilsTypescript__NS__setValueToVariableInTsFile: (tsAbsFilePath: string, variableName: string, valueOfVariable: any, options?: {
    skipAddIfNotExists?: boolean;
    useRawStringValue?: boolean;
}) => void;
export declare class UtilsTypescript__NS__TsImportExport {
    /**
     * for external modification
     */
    embeddedPathToFileResult: string;
    /**
     * for external modification
     */
    packageName: string;
    /**
     * for external modification
     */
    isIsomorphic?: boolean;
    readonly type: 'export' | 'import' | 'async-import' | 'require';
    /**
     * ORIGNAL
     * Name of the file that is being imported/exported
     * with parenthesis included , example
     * 'my-file' or "my-file" or `my-file`
     */
    readonly embeddedPathToFile: string;
    /**
     * same as cleanEmbeddedPathToFile but without quotes (parenthesis), example:
     * my-file or my-file or my-file
     */
    readonly cleanEmbeddedPathToFile: string;
    readonly startRow: number;
    readonly startCol: number;
    readonly endRow: number;
    readonly endCol: number;
    readonly parenthesisType: 'single' | 'double' | 'tics';
    readonly importElements: string[];
    constructor(type: 'export' | 'import' | 'async-import' | 'require', embeddedPathToFile: string, start: ts.LineAndCharacter, end: ts.LineAndCharacter, parenthesisType: 'single' | 'double' | 'tics', importElements?: string[]);
    private removeStartEndQuotes;
    /**
     * it will extract part of the file content
     * that is between startRow, startCol and endRow, endCol
     * and contains import/export/require statement
     */
    getStringPartFrom(wholeContentOfFile: string): string;
    wrapInParenthesis(str: string): string;
}
export declare const UtilsTypescript__NS__recognizeImportsFromFile: (fileAbsPAth: string) => UtilsTypescript__NS__TsImportExport[];
export declare const UtilsTypescript__NS__recognizeImportsFromContent: (fileContent: string) => UtilsTypescript__NS__TsImportExport[];
export type UtilsTypescript__NS__RenamedImportOrExport = {
    elementName: string;
    renamedAs: string;
    packageName?: string;
};
export declare const UtilsTypescript__NS__extractRenamedImportsOrExport: (content: string) => UtilsTypescript__NS__RenamedImportOrExport[];
/**
 * Transition methods ng18 => ng19
 * Adds standalone: false if not exists in component decorator
 */
export declare function UtilsTypescript__NS__transformComponentStandaloneOption(sourceText: string): string;
export declare const UtilsTypescript__NS__fixHtmlTemplatesInDir: (directoryPath: string) => void;
export declare function UtilsTypescript__NS__removeTaggedImportExport(tsFileContent: string, tags: string[], replaceWithEmptyLine?: boolean): string;
export declare function UtilsTypescript__NS__removeTaggedArrayObjects(tsFileContent: string, tags: string[], replaceWithEmptyLine?: boolean): string;
export declare function UtilsTypescript__NS__removeTaggedLines(tsFileContent: string, tags: string[], replaceWithEmptyLine?: boolean): string;
export declare function UtilsTypescript__NS__addBelowPlaceholder(tsFileContent: string, placeholderTag: string, contentToAdd: string): string;
export declare const UtilsTypescript__NS__wrapFirstImportsInImportsRegion: (fileContent: string) => string;
/**
 * wrap class field with decorators
 * wrap class methods with decorators
 */
export declare function UtilsTypescript__NS__wrapContentClassMembersDecoratorsWithRegion(classFileContent: string, wrapTag?: string): string;
export type UtilsTypescript__NS__FlattenMapping = {
    [modulePath: string]: {
        [oldQualifiedName: string]: string;
    };
};
export declare function UtilsTypescript__NS__transformFlatImports(sourceText: string, mapping: UtilsTypescript__NS__FlattenMapping): string;
export declare const UtilsTypescript__NS__clearRequireCacheRecursive: (modulePath: string, seen?: Set<string>) => void;
/**
 * Make all properties of T and its nested objects writable (non-readonly).
 */
export type UtilsTypescript__NS__DeepWritable<T> = {
    -readonly [P in keyof T]: T[P] extends object ? T[P] extends Function ? T[P] : UtilsTypescript__NS__DeepWritable<T[P]> : T[P];
};
export declare const UtilsTypescript__NS__addOrUpdateImportIfNotExists: (tsFileContent: string, identifiers: string | string[], fromModule: string) => string;
export declare const UtilsTypescript__NS__migrateFromNgModulesToStandaloneV21: (tsFileContent: string, projectName: string) => string;
/**
 * Calculate relative import path between two project-relative files.
 *
 * @example
 * calculateRelativeImportPath(
 *   'mypath/to/file/here.ts',
 *   'mypath/to/other/file/there.ts'
 * )
 * => '../other/file/there'
 */
export declare const UtilsTypescript__NS__calculateRelativeImportPath: (fileRelativePathFrom: string, fileRelativePathTo: string) => string;
export declare const UtilsTypescript__NS__injectImportsIntoImportsRegion: (content: string, importsToAdd: string[]) => string;
export interface UtilsTypescript__NS__ParsedTsDiagnostic {
    code?: number | string;
    category?: string;
    message: string;
    file?: string;
    line?: number;
    character?: number;
}
export declare function UtilsTypescript__NS__parseTsDiagnostic(diagnostic: ts.Diagnostic | any): UtilsTypescript__NS__ParsedTsDiagnostic[];
export declare const UtilsTypescript__NS__NSSPLITNAMESAPCE = "__NS__";
export declare const UtilsTypescript__NS__hoistTrailingChainComments: (code: string) => string;
export declare const UtilsTypescript__NS__normalizeBrokenLines: (code: string) => string;
export declare const UtilsTypescript__NS__collapseFluentChains: (code: string) => string;
export interface UtilsTypescript__NS__SplitNamespaceResult {
    content?: string;
    /**
     * EXAMPLE:
     *  namespacesMapObj: {
     *  'Utils__NS__wait': 'Utils_wait',
     *  'Utils__NS__waitMilliseconds': 'Utils_waitMilliseconds',
     * }
     */
    namespacesMapObj: {
        [namespaceDotPath: string]: string;
    };
    /**
     * namespacesReplace: {
     *  Utils: [
     *  'Utils_DbBinaryFormat',
     *  'Utils_DbBinaryFormatEnum',
     *  ],
     *  UtilsCliClassMethod: [
     *  'UtilsCliClassMethod_CLI_METHOD_KEY',
     *  'UtilsCliClassMethod_argsToParse',
     *  ]
     * }
     */
    namespacesReplace: {
        [rootNamespace: string]: string[];
    };
    /**
     * Everything from namespacesMapObj except types, interfaces etc.
     */
    namespacesMapObjJS?: {
        [namespaceDotPath: string]: string;
    };
    /**
     * Everything from namespacesReplace except types, interfaces etc.
     */
    namespacesReplaceJS?: {
        [rootNamespace: string]: string[];
    };
}
export declare const UtilsTypescript__NS__splitNamespaceForContent: (content: string) => UtilsTypescript__NS__SplitNamespaceResult;
export declare const UtilsTypescript__NS__splitNamespaceForFile: (fileAbsPath: string) => string;
export declare const UtilsTypescript__NS__replaceNamespaceWithLongNames: (content: string, namespacesMapObj: UtilsTypescript__NS__SplitNamespaceResult["namespacesMapObj"]) => string;
export declare const UtilsTypescript__NS__replaceImportNamespaceWithWithExplodedNamespace: (content: string, namespacesReplace: UtilsTypescript__NS__SplitNamespaceResult["namespacesReplace"], renamedImportsOrExports: UtilsTypescript__NS__RenamedImportOrExport[], currentPackageName: string, replaceInAllImports?: boolean) => string;
export declare const UtilsTypescript__NS__updateSplitNamespaceResultMapReplaceObj: (result: UtilsTypescript__NS__SplitNamespaceResult, renamedList: UtilsTypescript__NS__RenamedImportOrExport[]) => UtilsTypescript__NS__SplitNamespaceResult;
export declare const UtilsTypescript__NS__updateSplitNamespaceReExports: (splitNamespacesForPackages: Map<string, UtilsTypescript__NS__SplitNamespaceResult>, reExports: Map<string, UtilsTypescript__NS__GatheredExportsMap>) => void;
type PackageName = string;
export type UtilsTypescript__NS__ExportedThirdPartyNamespaces = '*' | string[];
export type UtilsTypescript__NS__GatheredExportsMap = {
    [packageName: string]: UtilsTypescript__NS__ExportedThirdPartyNamespaces;
};
export declare const UtilsTypescript__NS__gatherExportsMapFromIndex: (pathToIndexTs: string, isomorphicImportsMap: Map<PackageName, UtilsTypescript__NS__SplitNamespaceResult>) => UtilsTypescript__NS__GatheredExportsMap;
export declare const UtilsTypescript__NS__getCleanImport: (importName: string) => string | undefined;
export declare const UtilsTypescript__NS__refactorClassToNamespace: (sourceText: string) => string;
/**
 * @param tsContent TypeScript file content
 * @param absTsFile needed for debugging
 * @returns js content
 */
export declare const UtilsTypescript__NS__stripTsTypesIntoJsFromContent: (tsContent: string, absTsFile: string) => string;
export declare const UtilsTypescript__NS__stripTsTypesIntoJs: (entrypointFolderAbsPathWithIndexTs: string, outFolderWithIndexJS: string) => Promise<void>;
export declare const UtilsTypescript__NS__fileHasDefaultExport: (absFilePath: string) => boolean;
export declare const UtilsTypescript__NS__hasDefaultExport: (sourceText: string) => boolean;
export declare const UtilsTypescript__NS__removeFirstLevelRegionsInFile: (filePath: string) => void;
export declare const UtilsTypescript__NS__removeFirstLevelRegions: (content: string) => string;
export declare const UtilsTypescript__NS__addExportToNotExportedFirstLevelSymbolsInFile: (filePath: string) => void;
export declare const UtilsTypescript__NS__addExportToNotExportedFirstLevelSymbolsInContent: (content: string) => string;
export {};
