import { type ForbiddenWordsInfo } from "../../ConvenienceRenderer.js";
import { DependencyName, type Name } from "../../Naming.js";
import type { RenderContext } from "../../Renderer.js";
import type { OptionValues } from "../../RendererOptions/index.js";
import { type Sourcelike } from "../../Source.js";
import type { TargetLanguage } from "../../TargetLanguage.js";
import { type Transformation } from "../../Transformers.js";
import { type ClassProperty, ClassType, type Type } from "../../Type/index.js";
import { CSharpRenderer } from "./CSharpRenderer.js";
import type { systemTextJsonCSharpOptions } from "./language.js";
export declare class SystemTextJsonCSharpRenderer extends CSharpRenderer {
    private readonly _options;
    private readonly _enumExtensionsNames;
    private readonly _needHelpers;
    private readonly _needAttributes;
    private readonly _needNamespaces;
    constructor(targetLanguage: TargetLanguage, renderContext: RenderContext, _options: OptionValues<typeof systemTextJsonCSharpOptions>);
    protected forbiddenNamesForGlobalNamespace(): string[];
    protected forbiddenForObjectProperties(c: ClassType, className: Name): ForbiddenWordsInfo;
    protected makeNameForTransformation(xf: Transformation, typeName: Name | undefined): Name;
    protected makeNamedTypeDependencyNames(t: Type, name: Name): DependencyName[];
    protected emitUsings(): void;
    protected baseclassForType(_t: Type): Sourcelike | undefined;
    protected emitDefaultFollowingComments(): void;
    protected emitDefaultLeadingComments(): void;
    private converterForType;
    protected attributesForProperty(property: ClassProperty, _name: Name, _c: ClassType, jsonName: string): Sourcelike[] | undefined;
    protected blankLinesBetweenAttributes(): boolean;
    private topLevelResultType;
    private emitFromJsonForTopLevel;
    private emitDecoderSwitch;
    private emitTokenCase;
    private emitThrow;
    private deserializeTypeCode;
    private serializeValueCode;
    private emitSerializeClass;
    private emitCanConvert;
    private emitReadJson;
    private emitWriteJson;
    private converterObject;
    private emitConverterClass;
    private emitDecoderTransformerCase;
    private emitConsume;
    private emitDecodeTransformer;
    private stringCaseValue;
    private emitTransformer;
    private emitTransformation;
    protected emitRequiredHelpers(): void;
    protected needNamespace(): boolean;
}
