import { FCWithSlotMarker } from "../utils/types/Slots.js";
import { LabelProps, LegendOrSpanProps } from "../internal/components/InputLabel.js";
import { Props } from "./FormControlLabel.js";
import { FormControlValidationProps } from "./_FormControlValidation.js";
import { FormControlCaption } from "./FormControlCaption.js";
import React from "react";

//#region src/FormControl/FormControl.d.ts
type FormControlProps = {
  children?: React.ReactNode;
  /**
   * Whether the control allows user input
   */
  disabled?: boolean;
  /**
   * The unique identifier for this control. Used to associate the label, validation text, and caption text
   */
  id?: string;
  /**
   * If true, the user must specify a value for the input before the owning form can be submitted
   */
  required?: boolean;
  /**
   * The direction the content flows.
   * Vertical layout is used by default, and horizontal layout is used for checkbox and radio inputs.
   */
  layout?: 'horizontal' | 'vertical';
  className?: string;
  style?: React.CSSProperties;
};
declare const _default: React.ForwardRefExoticComponent<FormControlProps & React.RefAttributes<HTMLDivElement>> & {
  __SLOT__: symbol;
  Caption: typeof FormControlCaption;
  Label: FCWithSlotMarker<React.PropsWithChildren<{
    htmlFor?: string;
  } & (((LabelProps | LegendOrSpanProps) & {
    children?: React.ReactNode | undefined;
  }) & Props)>>;
  LeadingVisual: FCWithSlotMarker<React.PropsWithChildren<{
    style?: React.CSSProperties;
  }>>;
  Validation: FCWithSlotMarker<React.PropsWithChildren<FormControlValidationProps>>;
};
//#endregion
export { FormControlProps, _default as default };