import { z } from "zod";
import type { BlockMdxConfig } from "../types.js";
/**
* Pure (React-free) part of the standard `table` block: its data schema and MDX
* round-trip config. Shared by the server MDX adapter (the plan
* `plan-block-registry.ts` → `plan-mdx.ts`) and the client spec
* (`table.tsx`). Keeping it React-free means a server module that imports it
* never pulls React into the Nitro/SSR bundle.
*
* The schema MUST stay data-compatible with the legacy `table` branch of the
* plan `planBlockSchema` (`{ columns: string[]; rows: string[][] }`), and the
* MDX `tag` + attribute shape MUST match the legacy self-closing
* `
` encoding (`plan-mdx.ts`
* `serializeBlock`/`parseBlock`) so stored `.mdx` round-trips byte-compatibly.
*/
export interface TableData {
columns: string[];
rows: string[][];
density?: TableDensity;
}
export declare const TABLE_DENSITIES: readonly ["compact", "normal", "relaxed"];
export type TableDensity = (typeof TABLE_DENSITIES)[number];
export declare const tableSchema: z.ZodType;
/**
* MDX config: `columns` and `rows` are JSON attributes (no children) — exactly
* the legacy self-closing ``
* form. The legacy serializer emits `columns` before `rows`; `toAttrs` returns
* the keys in that exact insertion order because `serializeSpecBlock` preserves
* `Object.entries` order. `fromAttrs` mirrors the legacy parser's `?? []`
* defaults so partial/older nodes stay tolerant.
*/
export declare const tableMdx: BlockMdxConfig;
//# sourceMappingURL=table.config.d.ts.map