/**
 * Shared test helpers for IR Builder tests.
 */
import * as ts from "typescript";
import { createProgramContext } from "../program-context.js";
import { createProgram } from "../../program/creation.js";
import { IrExpression } from "../types.js";
import { DotnetMetadataRegistry } from "../../dotnet-metadata.js";
import { BindingRegistry } from "../../program/bindings.js";
export { createProgram, createProgramContext };
export declare const unwrapTransparentExpression: (expression: IrExpression | undefined) => IrExpression | undefined;
export declare const createTestProgram: (source: string, fileName?: string) => {
    testProgram: {
        program: ts.Program;
        checker: ts.TypeChecker;
        options: {
            projectRoot: string;
            sourceRoot: string;
            rootNamespace: string;
            strict: boolean;
        };
        sourceFiles: ts.SourceFile[];
        declarationSourceFiles: never[];
        metadata: DotnetMetadataRegistry;
        bindings: BindingRegistry;
        clrResolver: import("../../resolver/clr-bindings-resolve-logic.js").ClrBindingsResolver;
        binding: import("../binding/binding-types.js").BindingInternal;
    };
    ctx: import("../program-context-types.js").ProgramContext;
    options: {
        sourceRoot: string;
        rootNamespace: string;
    };
};
export declare const createFilesystemTestProgram: (files: Record<string, string>, entryRelativePath: string) => {
    tempDir: string;
    sourceFile: ts.SourceFile;
    testProgram: {
        program: ts.Program;
        checker: ts.TypeChecker;
        options: {
            projectRoot: string;
            sourceRoot: string;
            rootNamespace: string;
            strict: boolean;
        };
        sourceFiles: ts.SourceFile[];
        declarationSourceFiles: ts.SourceFile[];
        metadata: DotnetMetadataRegistry;
        bindings: BindingRegistry;
        clrResolver: import("../../resolver/clr-bindings-resolve-logic.js").ClrBindingsResolver;
        binding: import("../binding/binding-types.js").BindingInternal;
    };
    ctx: import("../program-context-types.js").ProgramContext;
    options: {
        sourceRoot: string;
        rootNamespace: string;
    };
    cleanup: () => void;
};
//# sourceMappingURL=_test-helpers.d.ts.map