import { type DiagnosticTarget, type Model, NoTarget, type Program, type Scalar, type Type, type Union } from "@typespec/compiler"; import type { ResolvedProjection } from "./projection.js"; import { toKebabCase } from "./utils.js"; export interface EmittedMappingFile { fileName: string; content: string; } type MappingProperty = Record; interface MappingOverride { keyword?: boolean; nested?: boolean; analyzer?: string; boost?: number; ignoreAbove?: number; } /** * Identifies the field a mapping is being built for, so an unmappable type * reports a diagnostic naming the field rather than defaulting to "object". */ interface MappingContext { program: Program; field: string; target: DiagnosticTarget | typeof NoTarget; } export declare function emitMapping(program: Program, projection: ResolvedProjection, defaultIgnoreAbove?: number): EmittedMappingFile; declare function toMapping(context: MappingContext, type: Type, override?: MappingOverride, defaultIgnoreAbove?: number): MappingProperty; declare function mapString(override?: MappingOverride, defaultIgnoreAbove?: number): MappingProperty; declare function mapScalar(context: MappingContext, scalar: Scalar, override?: MappingOverride, defaultIgnoreAbove?: number): MappingProperty; declare function mapModel(context: MappingContext, model: Model, override?: MappingOverride, defaultIgnoreAbove?: number): MappingProperty; declare function mapUnion(context: MappingContext, union: Union, override?: MappingOverride, defaultIgnoreAbove?: number): MappingProperty; export declare const __test: { mapModel: typeof mapModel; mapScalar: typeof mapScalar; mapString: typeof mapString; mapUnion: typeof mapUnion; toKebabCase: typeof toKebabCase; toMapping: typeof toMapping; }; export {}; //# sourceMappingURL=emit-mapping.d.ts.map