function useFieldExtension(): FieldExtensionProps;
export interface FieldExtensionProps extends ExtensionPropsBase {
  
  name: string;
  
  locale?: string;
  
  entryId: string | null;
  isTableCell: boolean;
  value: any;
  onBlur: <T extends HTMLElement = HTMLElement>(
    event?: FocusEvent<T>,
  ) => Promise<void>;
  onChange: <T extends HTMLElement = HTMLElement>(
    event: ChangeEvent<T> | any,
  ) => Promise<void>;
  onFocus: <T extends HTMLElement = HTMLElement>(
    event?: FocusEvent<T>,
  ) => Promise<void>;
  
  meta: {
    active: boolean;
    error: any;
    touched: boolean;
  };
  
  form: Form;
  
  field: {
    id: string;
    apiId: string;
    description: string | null;
    displayName: string;
    isList: boolean;
    isLocalized?: boolean;
    isRequired?: boolean;
    isUnique?: boolean;
    
    isPreview: boolean;
    type: FieldExtensionType;
  };
  
  model: Model;
  
  extension: {
    config: Record<string, any>;
    fieldConfig: Record<string, any>;
    tableConfig: Record<string, any>;
  };
  
  isExpanded: boolean;
  
  expand: (expand: boolean | ((isExpanded: boolean) => boolean)) => void;
}