import type { MetadataField, MetadataStyle, MetadataStyleId } from './metadata-style.types.js'; /** * What actually distinguishes the three styles: how a list of fields becomes a * list of lines, and how a block written in this style is recognised. */ interface MetadataStyleDefinition { readonly id: MetadataStyleId; matches(blockLines: readonly string[]): boolean; formatLines(fields: readonly MetadataField[]): string[]; } /** * Builds a {@link MetadataStyle} from the two operations that differ between * styles. * * `read` and `write` are shared and identical for all three: reading is * tolerant by construction (the block parser strips every marking) and writing * always re-emits the whole block, which is what guarantees a file never ends * up half in one style and half in another. */ export declare function defineMetadataStyle(definition: MetadataStyleDefinition): MetadataStyle; export {}; //# sourceMappingURL=metadata-style.base.d.ts.map