import * as React from 'react';

/**
 * Field — from @kibrisyazilim/design-system@0.1.0.
 */
export interface FieldProps {
  /** id of the control this field wraps — used for label association. */
  htmlFor: string;
  /** id applied to the hint/error text, for aria-describedby. */
  messageId: string;
  children: React.ReactNode;
  className?: string;
  style?: CSSProperties;
  /** Visible label. Omit only when a label exists elsewhere. */
  label?: React.ReactNode;
  /** Helper text under the control. Hidden while `error` is set. */
  hint?: React.ReactNode;
  /** Error message. Its presence also puts the control in its invalid state. */
  error?: React.ReactNode;
  /** Marks the field required and appends an asterisk to the label. */
  required?: boolean;
  /** Stretches the field to the width of its container. */
  fullWidth?: boolean;
}

export declare const Field: React.ComponentType<FieldProps>;
