import { j as WalkedField } from "../types-BBQaEPfE.mjs";
import { SolidRenderProps } from "./types.mjs";
import { JSX } from "solid-js";
//#region src/solid/renderers.d.ts
/**
* Build a stable, unique input ID from the path. Re-exported alias for
* {@link fieldDomId} so the Solid adapter has the same import shape as
* the React adapter's `inputId`.
*/
declare function inputId(path: string): string;
/** Headless renderer for `StringField` — plain ` ` / ``. */
declare function renderString(props: SolidRenderProps): JSX.Element;
/** Headless renderer for `NumberField` — plain ` `. */
declare function renderNumber(props: SolidRenderProps): JSX.Element;
/** Headless renderer for `BooleanField` — plain ` `. */
declare function renderBoolean(props: SolidRenderProps): JSX.Element;
/** Headless renderer for `EnumField` — plain `` listing each option. */
declare function renderEnum(props: SolidRenderProps): JSX.Element;
/**
* Compute the default value for a freshly added record entry based on
* the record's value-type schema. Mirrors the React headless
* implementation byte-for-byte so both adapters seed new entries the
* same way.
*/
declare function defaultRecordValue(valueType: WalkedField): unknown;
/**
* Generate a unique, currently-unused key for a new record entry.
* Picks the first of `key`, `key-1`, `key-2`, … not in `existing`.
*/
declare function nextRecordKey(existing: readonly string[], base?: string): string;
/**
* Rename a key in an object while preserving insertion order. Returns
* the original object reference when the rename is a no-op
* (oldKey === newKey) or when newKey collides with an existing key.
*/
declare function renameRecordKey(obj: Record, oldKey: string, newKey: string): Record;
/** Headless renderer for `ObjectField` — `` per object. */
declare function renderObject(props: SolidRenderProps): JSX.Element;
/** Headless renderer for `RecordField` — editable key/value rows. */
declare function renderRecord(props: SolidRenderProps): JSX.Element;
/** Headless renderer for `ArrayField` — ordered list with add/remove controls. */
declare function renderArray(props: SolidRenderProps): JSX.Element;
/** Headless renderer for plain `UnionField` — picks the matching option. */
declare function renderUnion(props: SolidRenderProps): JSX.Element;
/**
* Pure helper: convert a tab index into the new value the discriminated
* union should emit. Returns `undefined` when the index is out of bounds.
*
* Extracted so the contract is unit-testable without rendering the tabs
* component. Mirrors the React adapter's `discriminatedUnionValueForTab`.
*/
declare function discriminatedUnionValueForTab(optionLabels: readonly string[], discKey: string, newIndex: number): Record | undefined;
/** Headless renderer for `DiscriminatedUnionField` — tabbed UI. */
declare function renderDiscriminatedUnion(props: SolidRenderProps): JSX.Element;
/** Headless renderer for `FileField` — plain ` `. */
declare function renderFile(props: SolidRenderProps): JSX.Element;
/**
* Render a literal field — `z.literal("a")` or `{ const: 5 }`.
*
* Literals are non-editable by nature; both read-only and editable modes
* display the literal value(s). Multiple literals (`z.literal(["a","b"])`)
* render comma-separated.
*/
declare function renderLiteral(props: SolidRenderProps): JSX.Element;
/** Render a null field — `z.null()` or `{ type: "null" }`. */
declare function renderNull(props: SolidRenderProps): JSX.Element;
/** Render a never field — `z.never()` or `{ not: {} }` / `false` schema. */
declare function renderNever(props: SolidRenderProps): JSX.Element;
/** Render a tuple field — positional rendering of each prefix item. */
declare function renderTuple(props: SolidRenderProps): JSX.Element;
/** Render a conditional field — JSON Schema `if`/`then`/`else`. */
declare function renderConditional(props: SolidRenderProps): JSX.Element;
/** Render a negation field — JSON Schema `{ not: { ... } }`. */
declare function renderNegation(props: SolidRenderProps): JSX.Element;
/** Headless renderer for `UnknownField` — JSON-encoded fallback. */
declare function renderUnknown(props: SolidRenderProps): JSX.Element;
//#endregion
export { defaultRecordValue, discriminatedUnionValueForTab, inputId, nextRecordKey, renameRecordKey, renderArray, renderBoolean, renderConditional, renderDiscriminatedUnion, renderEnum, renderFile, renderLiteral, renderNegation, renderNever, renderNull, renderNumber, renderObject, renderRecord, renderString, renderTuple, renderUnion, renderUnknown };