/**
 * BaseFieldLayout - Shared JSX wrapper for form field components.
 *
 * Every form component renders an identical layout skeleton:
 *   CollabFormFieldContainer
 *     CollabFormFieldLabel
 *     div.flex.items-start.gap-2  (input wrapper)
 *       div.flex-1               (width constraint)
 *         {children}              (THE ONLY UNIQUE PART)
 *       UnifiedFieldControls
 *     CollabFormAddEntryIcon      (conditional)
 *     CollabFormDeleteEntryIcon   (conditional)
 *     CollabFormFieldReferenceTag
 *     CollabFormFieldError
 *     CollabFormFileUploadSection
 *
 * This component accepts the result from use_base_form_field and renders
 * everything except the unique input element, which is passed as children.
 */
import React from 'react';
import type { BaseFormFieldResult } from './use_base_form_field.js';
export interface BaseFieldLayoutProps {
    /** Result from use_base_form_field */
    base: BaseFormFieldResult;
    /** CSS class name for the input wrapper (e.g. 'cls_collab_input_wrapper') */
    wrapper_class_name?: string;
    /** Additional class name passed by the specific component */
    wrapper_extra_class_name?: string;
    /** Override flex direction for wrapper (default: 'flex items-start gap-2') */
    wrapper_flex_class?: string;
    /**
     * When true the field container always spans the full grid row, even when
     * `field_columns > 1` is in effect. Use for wide fields (textarea, data table)
     * that should never share a row with another field.
     * Default: false.
     */
    force_full_row?: boolean;
    /** The unique input element(s) for this field type */
    children: React.ReactNode;
}
/**
 * Standard form field layout used by inputbox, textarea, date, and combo.
 * Checkbox and radio have slightly different layouts so they use this
 * component partially or override sections.
 */
export declare function BaseFieldLayout({ base, wrapper_class_name, wrapper_extra_class_name, wrapper_flex_class, force_full_row, children, }: BaseFieldLayoutProps): import("react/jsx-runtime").JSX.Element;
//# sourceMappingURL=base_field_layout.d.ts.map