export type MetaField = { key: string; value: string; }; export declare function serializeMetaFields(fields: MetaField[]): string; type TestEditorLike = { document: any[]; getTextCursorPosition?: () => { block?: { id?: string; }; }; insertBlocks: (blocks: any[], referenceId: string, placement: "before" | "after") => any[]; }; /** * Insert a new test: a `testMeta` panel * seeded with default metadata — `type: manual`, `priority: normal`, and `labels` * copied from the suite block — followed by an empty H2 heading for the test title. * * Inserts at the text cursor when the editor is focused, otherwise at the end of * the document. Returns the title heading's block id (for focusing), or null. */ export declare function addTestBlock(editor: TestEditorLike): string | null; /** * The `` / `` header: a card that folds open into * its fields. Shut, it shows the id, the first filled field and how many more. */ export declare function TestMetaCard({ kind, fields, onChange, readOnly }: TestMetaCardProps): import("react/jsx-runtime").JSX.Element; export declare const testMetaBlock: { config: { readonly type: "testMeta"; readonly content: "none"; readonly propSchema: { readonly metaKind: { readonly default: "test"; }; readonly metaFields: { readonly default: "[]"; }; readonly metaInline: { readonly default: false; }; }; }; implementation: import("@blocknote/core").TiptapBlockImplementation<{ readonly type: "testMeta"; readonly content: "none"; readonly propSchema: { readonly metaKind: { readonly default: "test"; }; readonly metaFields: { readonly default: "[]"; }; readonly metaInline: { readonly default: false; }; }; }, any, import("@blocknote/core").InlineContentSchema, import("@blocknote/core").StyleSchema>; }; type MetaKind = "test" | "suite"; export type TestMetaCardProps = { kind: MetaKind; fields: MetaField[]; onChange: (fields: MetaField[]) => void; readOnly?: boolean; }; export {};