import type { Enum, Model, ModelProperty, Program, Scalar, Type, Union } from "@typespec/compiler"; import type { ResolvedProjection } from "./projection.js"; import { toKebabCase } from "./utils.js"; export interface EmittedDocTypeFile { fileName: string; content: string; } /** * Collect all sub-projection models that need their own interface emitted. */ export declare function collectSubProjections(projection: ResolvedProjection): ResolvedProjection[]; export declare function emitDocType(program: Program, projection: ResolvedProjection): EmittedDocTypeFile; export declare function renderPropertyType(program: Program, property: ModelProperty): string; /** * The whole model as a TypeScript interface — every property, not the * `@searchable` subset a projection resolves. Used for a joined entity the * spec declares no `SearchProjection` for (issue #194). */ export declare function renderEntityInterface(program: Program, model: Model): string; declare function renderType(program: Program, type: Type, depth?: number): string; declare function renderScalar(scalar: Scalar): string; declare function renderModel(program: Program, model: Model, depth?: number): string; declare function renderEnum(enumType: Enum): string; declare function renderUnion(program: Program, union: Union, depth?: number): string; export declare function toDocTypeFileName(projectionModelName: string): string; export declare const __test: { renderEnum: typeof renderEnum; renderModel: typeof renderModel; renderScalar: typeof renderScalar; renderType: typeof renderType; renderUnion: typeof renderUnion; toDocTypeFileName: typeof toDocTypeFileName; toKebabCase: typeof toKebabCase; }; export {}; //# sourceMappingURL=emit-doc-type.d.ts.map