import type { FieldSchema, EntitySchema } from '../types/schema';
/**
 * Formats a raw field value for spreadsheet display based on the field's schema type.
 *
 * - Checkbox → ✓ / ✗
 * - DatePicker → locale-formatted date string
 * - Select → resolved human-readable label (or raw value if no match)
 * - WysiwygEditor → HTML tags stripped
 * - Email / Url → returned as-is (string)
 * - Number / Range → returned as number
 * - Relation → resolved to comma-separated IDs (title resolution requires separate lookup)
 * - All others → string coercion
 */
export declare function formatFieldValue(value: unknown, fieldSchema: FieldSchema | undefined): string | number | boolean;
/**
 * Gets the FieldSchema for a given entity/field from the schemas map.
 * For dot-notation paths like "venue.address.city", only the top-level
 * segment "venue" is matched against the schema.
 */
export declare function getFieldSchema(schemas: Record<string, EntitySchema> | undefined, entityName: string, fieldName: string): FieldSchema | undefined;
/**
 * Extracts the top-level field name from a potentially nested path.
 * "venue.address.city" → "venue"
 * "sections[0].questions" → "sections"
 * "sections[*].questions[*].choices" → "sections"
 * "name" → "name"
 */
export declare function toTopLevelField(path: string): string;
/**
 * Resolves a dot/bracket/wildcard path into a nested object.
 *
 * Supported syntax:
 * - Dot notation: "a.b.c" → obj.a.b.c
 * - Bracket index: "items[0].name" → obj.items[0].name
 * - Wildcard: "items[*].name" → flattened array of obj.items[i].name for all i
 * - Nested wildcards: "a[*].b[*].c" → flattened across all levels
 *
 * Returns undefined if any segment is missing/null/non-object.
 * Returns an array when wildcards are used.
 */
export declare function resolveNestedPath(obj: unknown, path: string): unknown;
