import type { MetadataTypes, MetadataType, MetadataTypeName, MetadataAttribute, MetadataPropertyType } from "./types";
export declare class CSharpGenerator {
    namespaces: string[];
    apis: string[];
    classes: string[];
    enums: string[];
    ast: MetadataTypes;
    typeFilter?: {
        before?: (type: MetadataType, sb: string[]) => void;
        after?: (type: MetadataType, sb: string[]) => void;
    };
    typeHasAttr(type: MetadataType, name: string): boolean;
    propHasAttr(prop: MetadataPropertyType, name: string): boolean;
    addNamespace(ns?: string): void;
    toTypeRef(typeRef: MetadataTypeName): string;
    toType(name: string, genericArgs?: string[], namespace?: string): string;
    sortAttributes(annotations: MetadataAttribute[]): MetadataAttribute[];
    toAttribute(attr: MetadataAttribute): string;
    toClass(cls: MetadataType, opt?: {
        hideAttrs: string[];
        ignoreProp?: (prop: MetadataPropertyType) => boolean;
    }): string;
    toQuotedString(s?: string, defaultValue?: string): string;
    toEnum(enumType: MetadataType, opt?: {
        hideAttrs: string[];
    }): string;
    generate(ast: MetadataTypes): void;
}
//# sourceMappingURL=cs-gen.d.ts.map