'use client';

/** Composer — the `<Composer>` shell + its slot kit. */

export {
  Composer,
  type ComposerProps,
  type ComposerSize,
  type ComposerAppearance,
} from './Composer';
export { ComposerButton, BUTTON_SIZE, type ComposerButtonProps } from './ComposerButton';
export { ComposerMenuButton, type ComposerMenuButtonProps } from './ComposerMenuButton';
export { ComposerRichTextarea, type ComposerRichTextareaProps } from './ComposerRichTextarea';
export { ComposerActionBar } from './ComposerActionBar';
export { ComposerToolPill, type ComposerToolPillProps } from './ComposerToolPill';
export {
  ComposerModelPicker,
  type ComposerModelPickerProps,
  type ComposerModelOption,
} from './ComposerModelPicker';
export {
  ComposerBanner,
  type ComposerBannerProps,
  type ComposerBannerAction,
} from './ComposerBanner';
export { ComposerFooter } from './ComposerFooter';
export { useResolvedComposerSize } from './size-context';
export {
  useComposerActions,
  type UseComposerActionsParams,
  type ComposerActionClusters,
} from './useComposerActions';
export type {
  ComposerAction,
  ComposerActionVisibility,
  ComposerLayout,
  ComposerSlots,
  ComposerSlotComponents,
  ComposerSlotProps,
  ComposerFooterProps,
  SendButtonProps,
  AttachButtonProps,
  ComposerTextareaProps,
  ActionBarProps,
} from './types';
