/** * Static container class emission * * Builds a CSharpClassDeclarationAst for the module's static container class. * The container holds static fields, methods, and a __TopLevel() entry point. */ import { IrModule, IrStatement } from "@tsonic/frontend"; import { EmitterContext, type ValueSymbolInfo } from "../../../types.js"; import type { CSharpClassDeclarationAst } from "../backend-ast/types.js"; export type StaticContainerResult = { readonly declaration: CSharpClassDeclarationAst; readonly context: EmitterContext; }; export declare const collectStaticContainerValueSymbols: (members: readonly IrStatement[], context: EmitterContext) => ReadonlyMap; /** * Check if there's a namespace-level class with the same name as the module */ export declare const hasMatchingClassName: (declarations: readonly IrStatement[], className: string) => boolean; /** * Emit static container class as CSharpClassDeclarationAst. * * @param useModuleSuffix - If true, adds __Module suffix to avoid collision with namespace-level types */ export declare const emitStaticContainer: (module: IrModule, members: readonly IrStatement[], baseContext: EmitterContext, hasInheritance: boolean, useModuleSuffix?: boolean) => StaticContainerResult; //# sourceMappingURL=static-container.d.ts.map