import { Type } from "@tsed/core";
import { JsonMapperCompiler } from "./JsonMapperCompiler.js";
import { JsonSerializerOptions } from "./JsonSerializerOptions.js";
/**
 * Serializes data structures according to the metadata captured by `@tsed/schema`.
 *
 * The serializer walks entity schemas, applies hooks, honors alias/group rules, and falls back to the
 * registered type mappers (e.g., components in `src/components`).
 */
export declare class JsonSerializer extends JsonMapperCompiler<JsonSerializerOptions> {
    constructor();
    map(input: any, options?: JsonSerializerOptions): any;
    protected alterValue(schemaId: string, value: any, options: JsonSerializerOptions): any;
    protected createMapper(model: Type<any>, id: string, groups: false | string[]): string;
    private mapOptions;
    private mapProperty;
    private getPropertyFiller;
    private createDiscriminatorMapper;
    private mapPrecondition;
    private mapDiscriminatorKeyValue;
    private mapAdditionalProperties;
    private mapObject;
    private mapSet;
    private mapArray;
    private mapMap;
    private mapItem;
    private mapJSON;
}
