import { PslDocumentAst } from "@prisma-next/framework-components/psl-ast"; import { AuthoringPslBlockDescriptorNamespace } from "@prisma-next/framework-components/authoring"; import { CodecLookup } from "@prisma-next/framework-components/codec"; //#region src/print-psl.d.ts type PslBlockDescriptorsNamespace = AuthoringPslBlockDescriptorNamespace; interface PrintPslOptions { /** * Extension-contributed PSL block descriptors, indexed by user-facing path. * Typically an `AssembledAuthoringContributions.pslBlockDescriptors` namespace * produced by `assembleAuthoringContributions`. Phase 2 of the printer indexes * into this namespace by each extension-contributed AST node's `kind` * discriminator and renders the block generically from the descriptor's * `parameters` map. * * When absent, an AST that contains extension-contributed blocks throws — * silently dropping blocks would lose user-authored content without a * diagnostic. ASTs that contain only framework-parsed blocks print without * any `pslBlockDescriptors` argument, which is what existing call sites do today. */ readonly pslBlockDescriptors?: PslBlockDescriptorsNamespace; /** * Codec lookup used to print `value`-kind block parameters. The codec's JSON * medium (`encodeJson`/`decodeJson`) validates and normalizes each value param. * Required alongside `pslBlockDescriptors` when the AST contains `value`-kind * parameters. When absent, the raw PSL literal stored in the AST node is * emitted as-is. */ readonly codecLookup?: CodecLookup; } declare function printPslFromAst(ast: PslDocumentAst, options?: PrintPslOptions): string; //#endregion export { printPslFromAst as printPsl }; //# sourceMappingURL=index.d.mts.map