import { EmitContext } from "@typespec/compiler"; import { EmitTarget, TypraEmitterOptions } from "../../lib.js"; import { TypeNode } from "../../ir/ast.js"; import { GeneratorOptions } from "../../emitter.js"; import { TypeResolver } from "../../testing/test-context.js"; /** * Render a type's group as an idiomatic C# subfolder path. C# folders (like the * namespaces they mirror) are PascalCase, so every segment is PascalCased — * whether the group came from a namespace projection (already PascalCase) or from * a lowercase TSP source subfolder (e.g. `connection`, `tools`). Without this a * flat-namespace schema emits lowercase `connection/Connection.cs` while a nested * one emits `Contracts/Core/Thing.cs`, so folder casing is inconsistent. */ export declare function csharpGroupFolder(group: string): string; export declare const generateCsharp: (context: EmitContext, node: TypeNode, emitTarget: EmitTarget, options?: GeneratorOptions) => Promise; /** * Render the conversion-test file for one type. * * Exported for regression coverage: the payload completion below is easy to drop when this * driver diverges from the shared `buildBaseTestContext` path the other backends use. */ export declare const renderTests: (node: TypeNode, namespace: string, resolveType: TypeResolver) => string;