import { PaperProps } from "../Paper/Paper.types.js";
import { AllHTMLAttributes, CSSProperties, ComponentProps, ReactNode } from "react";
import { PopoverContentProps, Root } from "@radix-ui/react-popover";

//#region src/components/Popover/Popover.types.d.ts
type CombinedRefs = {
  container: HTMLDivElement | null;
  content: HTMLDivElement | null;
  trigger: HTMLButtonElement | null;
};
interface PopoverProps extends Omit<AllHTMLAttributes<HTMLDivElement>, 'popover' | 'title'> {
  children: ReactNode;
  align?: PopoverContentProps['align'];
  closeButtonLabel?: string;
  disabled?: boolean;
  elevation?: PaperProps['elevation'];
  fullWidth?: boolean;
  modal?: boolean;
  open?: boolean;
  paper?: Partial<PaperProps>;
  popover?: Partial<{
    className?: string;
    style?: CSSProperties;
  } & Omit<PopoverContentProps, 'align' | 'asChild' | 'onInteractOutside' | 'side'>>;
  side?: PopoverContentProps['side'];
  title?: ReactNode;
  toggleOnTriggerClick?: boolean;
  toggleOnTriggerHover?: boolean;
  trigger?: ReactNode;
  triggerAsButton?: boolean;
  width?: number | string | 'auto' | 'fit' | 'full' | 'trigger';
  withArrow?: boolean;
  withCloseButton?: boolean;
  withScroll?: boolean;
  onClose?: () => void;
  onCloseButtonClick?: () => void;
  onInteractOutside?: PopoverContentProps['onInteractOutside'];
  onOpen?: () => void;
  onOpenChange?: ComponentProps<typeof Root>['onOpenChange'];
}
//#endregion
export { CombinedRefs, PopoverProps };
//# sourceMappingURL=Popover.types.d.ts.map