import * as React$1 from 'react';
import React__default, { ReactNode, Ref, ComponentType, HTMLAttributes, ComponentPropsWithRef, RefAttributes, PropsWithChildren, CSSProperties, FC, SVGProps } from 'react';
import * as react_aria_components from 'react-aria-components';
import { TextFieldProps as TextFieldProps$1, Tabs as Tabs$1, TabPanel, TabListProps, TabProps, TabRenderProps, TagGroupProps as TagGroupProps$1, TagProps as TagProps$1, ModalOverlayProps, ModalRenderProps, DialogTrigger, ComboBoxProps as ComboBoxProps$1, ListBoxProps } from 'react-aria-components';
import useEmblaCarousel, { UseEmblaCarouselType } from 'embla-carousel-react';

interface InputBaseProps extends TextFieldProps {
    /** Tooltip message on hover. */
    tooltip?: string;
    /**
     * Input size.
     * @default "sm"
     */
    size?: "sm" | "md";
    /** Placeholder text. */
    placeholder?: string;
    /** Class name for the icon. */
    iconClassName?: string;
    /** Class name for the input. */
    inputClassName?: string;
    /** Class name for the input wrapper. */
    wrapperClassName?: string;
    /** Class name for the tooltip. */
    tooltipClassName?: string;
    /** Keyboard shortcut to display. */
    shortcut?: string | boolean;
    ref?: Ref<HTMLInputElement>;
    groupRef?: Ref<HTMLDivElement>;
    /** Icon component to display on the left side of the input. */
    icon?: ComponentType<HTMLAttributes<HTMLOrSVGElement>>;
}
interface BaseProps {
    /** Label text for the input */
    label?: string;
    /** Helper text displayed below the input */
    hint?: ReactNode;
}
interface TextFieldProps extends BaseProps, TextFieldProps$1, Pick<InputBaseProps, "size" | "wrapperClassName" | "inputClassName" | "iconClassName" | "tooltipClassName"> {
    ref?: Ref<HTMLDivElement>;
}

/**
 * A2P 10DLC-compliant privacy + SMS consent checkbox. Use on any form that collects phone numbers.
 * Same copy and markup used across contact and job application forms.
 */
declare function PrivacyCheckbox$1(): React$1.JSX.Element;

type Orientation = "horizontal" | "vertical";
type HorizontalTypes = "button-brand" | "button-gray" | "button-border" | "button-minimal" | "underline";
type VerticalTypes = "button-brand" | "button-gray" | "button-border" | "button-minimal" | "line";
type TabTypeColors<T> = T extends "horizontal" ? HorizontalTypes : VerticalTypes;
declare const sizes: {
    sm: {
        "button-brand": string;
        "button-gray": string;
        "button-border": string;
        "button-minimal": string;
        underline: string;
        line: string;
    };
    md: {
        "button-brand": string;
        "button-gray": string;
        "button-border": string;
        "button-minimal": string;
        underline: string;
        line: string;
    };
};
interface TabListComponentProps<T extends object, K extends Orientation> extends TabListProps<T> {
    /** The size of the tab list. */
    size?: keyof typeof sizes;
    /** The type of the tab list. */
    type?: TabTypeColors<K>;
    /** The orientation of the tab list. */
    orientation?: K;
    /** The items of the tab list. */
    items: T[];
    /** Whether the tab list is full width. */
    fullWidth?: boolean;
}
interface TabComponentProps extends TabProps {
    /** The label of the tab. */
    label?: ReactNode;
    /** The children of the tab. */
    children?: ReactNode | ((props: TabRenderProps) => ReactNode);
    /** The badge displayed next to the label. */
    badge?: number | string;
}
declare const Tabs: {
    ({ className, ...props }: ComponentPropsWithRef<typeof Tabs$1>): React$1.JSX.Element;
    Panel: (props: ComponentPropsWithRef<typeof TabPanel>) => React$1.JSX.Element;
    List: <T extends Orientation>({ size, type, orientation: orientationProp, fullWidth, className, children, ...otherProps }: TabListComponentProps<TabComponentProps, T>) => React$1.JSX.Element;
    Item: (props: TabComponentProps) => React$1.JSX.Element;
};

interface TagItem {
    id: string;
    label: string;
    count?: number;
    avatarSrc?: string;
    avatarContrastBorder?: boolean;
    dot?: boolean;
    dotClassName?: string;
    isDisabled?: boolean;
    onClose?: (id: string) => void;
}
interface TagGroupProps extends TagGroupProps$1, RefAttributes<HTMLDivElement> {
    label: string;
    size?: "sm" | "md" | "lg";
}
declare const TagGroup: ({ label, selectionMode, size, children, ...otherProps }: TagGroupProps) => React$1.JSX.Element;
declare const TagList: <T extends object>(props: react_aria_components.TagListProps<T> & React.RefAttributes<HTMLDivElement>) => React.ReactElement | null;
interface TagProps extends TagProps$1, RefAttributes<object>, Omit<TagItem, "label" | "id"> {
}
declare const Tag: ({ id, avatarSrc, avatarContrastBorder, dot, dotClassName, isDisabled, count, className, children, onClose, }: PropsWithChildren<TagProps>) => React$1.JSX.Element;

type PaginationPage = {
    /** The type of the pagination item. */
    type: "page";
    /** The value of the pagination item. */
    value: number;
    /** Whether the pagination item is the current page. */
    isCurrent: boolean;
};
type PaginationEllipsisType = {
    type: "ellipsis";
    key: number;
};
type PaginationItemType = PaginationPage | PaginationEllipsisType;
interface PaginationContextType {
    /** The pages of the pagination. */
    pages: PaginationItemType[];
    /** The current page of the pagination. */
    currentPage: number;
    /** The total number of pages. */
    total: number;
    /** The function to call when the page changes. */
    onPageChange: (page: number) => void;
}
interface PaginationRootProps {
    /** Number of sibling pages to show on each side of the current page */
    siblingCount?: number;
    /** Current active page number */
    page: number;
    /** Total number of pages */
    total: number;
    children: ReactNode;
    /** The style of the pagination root. */
    style?: CSSProperties;
    /** The class name of the pagination root. */
    className?: string;
    /** Callback function that's called when the page changes with the new page number. */
    onPageChange?: (page: number) => void;
}
interface TriggerRenderProps$1 {
    isDisabled: boolean;
    onClick: () => void;
}
interface TriggerProps$1 {
    /** The children of the trigger. Can be a render prop or a valid element. */
    children: ReactNode | ((props: TriggerRenderProps$1) => ReactNode);
    /** The style of the trigger. */
    style?: CSSProperties;
    /** The class name of the trigger. */
    className?: string | ((args: {
        isDisabled: boolean;
    }) => string);
    /** If true, the child element will be cloned and passed down the prop of the trigger. */
    asChild?: boolean;
    /** The direction of the trigger. */
    direction: "prev" | "next";
    /** The aria label of the trigger. */
    ariaLabel?: string;
}
interface PaginationItemRenderProps {
    isSelected: boolean;
    onClick: () => void;
    value: number;
    "aria-current"?: "page";
    "aria-label"?: string;
}
interface PaginationItemProps {
    /** The value of the pagination item. */
    value: number;
    /** Whether the pagination item is the current page. */
    isCurrent: boolean;
    /** The children of the pagination item. Can be a render prop or a valid element. */
    children?: ReactNode | ((props: PaginationItemRenderProps) => ReactNode);
    /** The style object of the pagination item. */
    style?: CSSProperties;
    /** The class name of the pagination item. */
    className?: string | ((args: {
        isSelected: boolean;
    }) => string);
    /** The aria label of the pagination item. */
    ariaLabel?: string;
    /** If true, the child element will be cloned and passed down the prop of the item. */
    asChild?: boolean;
}
interface PaginationEllipsisProps {
    key: number;
    children?: ReactNode;
    style?: CSSProperties;
    className?: string | (() => string);
}
interface PaginationContextComponentProps {
    children: (pagination: PaginationContextType) => ReactNode;
}
declare const Pagination: {
    Root: ({ total, siblingCount, page, onPageChange, children, style, className }: PaginationRootProps) => React__default.JSX.Element;
    PrevTrigger: FC<Omit<TriggerProps$1, "direction">>;
    NextTrigger: FC<Omit<TriggerProps$1, "direction">>;
    Item: ({ value, isCurrent, children, style, className, ariaLabel, asChild }: PaginationItemProps) => React__default.JSX.Element;
    Ellipsis: FC<PaginationEllipsisProps>;
    Context: FC<PaginationContextComponentProps>;
};

interface SlideoutMenuProps extends Omit<ModalOverlayProps, "children">, RefAttributes<HTMLDivElement> {
    children: ReactNode | ((children: ModalRenderProps & {
        close: () => void;
    }) => ReactNode);
    dialogClassName?: string;
}
declare const Menu: {
    ({ children, dialogClassName, ...props }: SlideoutMenuProps): React$1.JSX.Element;
    displayName: string;
};
declare const Content: {
    ({ role, ...props }: ComponentPropsWithRef<"div">): React$1.JSX.Element;
    displayName: string;
};
interface SlideoutHeaderProps extends ComponentPropsWithRef<"header"> {
    onClose?: () => void;
}
declare const Header: {
    ({ className, children, onClose, ...props }: SlideoutHeaderProps): React$1.JSX.Element;
    displayName: string;
};
declare const Footer: {
    (props: ComponentPropsWithRef<"footer">): React$1.JSX.Element;
    displayName: string;
};
declare const SlideoutMenu: typeof Menu & {
    Trigger: typeof DialogTrigger;
    Content: typeof Content;
    Header: typeof Header;
    Footer: typeof Footer;
};

declare const getStarProgress: (starPosition: number, rating: number, maxRating?: number) => number;
interface StarIconProps extends SVGProps<SVGSVGElement> {
    /**
     * The progress of the star icon. It should be a number between 0 and 100.
     *
     * @default 100
     */
    progress?: number;
}
declare const StarIcon: ({ progress, ...props }: StarIconProps) => React$1.JSX.Element;

declare const Wreath: (props: HTMLAttributes<HTMLOrSVGElement>) => React$1.JSX.Element;

type CarouselApi = UseEmblaCarouselType[1];
type UseCarouselParameters = Parameters<typeof useEmblaCarousel>;
type CarouselOptions = UseCarouselParameters[0];
type CarouselPlugin = UseCarouselParameters[1];
type CarouselProps = {
    /** The options for the Embla carousel. */
    opts?: CarouselOptions;
    /** The plugins for the Embla carousel. */
    plugins?: CarouselPlugin;
    /** The orientation of the carousel. */
    orientation?: "horizontal" | "vertical";
    /** The function to set the API for the carousel. */
    setApi?: (api: CarouselApi) => void;
};
type CarouselContextProps = CarouselProps & {
    /** The ref of the carousel. */
    carouselRef: ReturnType<typeof useEmblaCarousel>[0];
    /** The API of the carousel. */
    api: ReturnType<typeof useEmblaCarousel>[1];
    /** The function to scroll the carousel to the previous slide. */
    scrollPrev: () => void;
    /** The function to scroll the carousel to the next slide. */
    scrollNext: () => void;
    /** Whether the carousel can scroll to the previous slide. */
    canScrollPrev: boolean;
    /** Whether the carousel can scroll to the next slide. */
    canScrollNext: boolean;
    /** The index of the selected slide. */
    selectedIndex: number;
    /** The scroll snaps of the carousel. */
    scrollSnaps: number[];
};
declare const CarouselContext: React$1.Context<CarouselContextProps | null>;
declare const useCarousel: () => CarouselContextProps;
interface CarouselContentProps extends ComponentPropsWithRef<"div"> {
    /** The class name of the content. */
    className?: string;
    /** Whether to hide the overflow. */
    overflowHidden?: boolean;
}
interface TriggerRenderProps {
    isDisabled: boolean;
    onClick: () => void;
}
interface TriggerProps {
    /** The ref of the trigger. */
    ref?: Ref<HTMLButtonElement>;
    /** If true, the child element will be cloned and passed down the prop of the trigger. */
    asChild?: boolean;
    /** The direction of the trigger. */
    direction: "prev" | "next";
    /** The children of the trigger. Can be a render prop or a valid element. */
    children: ReactNode | ((props: TriggerRenderProps) => ReactNode);
    /** The style of the trigger. */
    style?: CSSProperties;
    /** The class name of the trigger. */
    className?: string | ((args: {
        isDisabled: boolean;
    }) => string);
}
interface CarouselIndicatorRenderProps {
    isSelected: boolean;
    onClick: () => void;
}
interface CarouselIndicatorProps {
    /** The index of the indicator. */
    index: number;
    /** If true, the child element will be cloned and passed down the prop of the indicator. */
    asChild?: boolean;
    /** If true, the indicator will be selected. */
    isSelected?: boolean;
    /** The children of the indicator. Can be a render prop or a valid element. */
    children?: ReactNode | ((props: CarouselIndicatorRenderProps) => ReactNode);
    /** The style of the indicator. */
    style?: CSSProperties;
    /** The class name of the indicator. */
    className?: string | ((args: {
        isSelected: boolean;
    }) => string);
}
interface CarouselIndicatorGroupProps extends Omit<HTMLAttributes<HTMLDivElement>, "children"> {
    children: ReactNode | ((props: {
        index: number;
    }) => ReactNode);
    className?: string;
}
declare const Carousel: {
    Root: ({ orientation, opts, setApi, plugins, className, children, ...props }: ComponentPropsWithRef<"div"> & CarouselProps) => React$1.JSX.Element;
    Content: ({ className, overflowHidden, ...props }: CarouselContentProps) => React$1.JSX.Element;
    Item: ({ className, ...props }: ComponentPropsWithRef<"div">) => React$1.JSX.Element;
    PrevTrigger: (props: Omit<TriggerProps, "direction">) => React$1.JSX.Element;
    NextTrigger: (props: Omit<TriggerProps, "direction">) => React$1.JSX.Element;
    IndicatorGroup: ({ children, ...props }: CarouselIndicatorGroupProps) => React$1.JSX.Element;
    Indicator: ({ index, isSelected, children, asChild, className, style }: CarouselIndicatorProps) => React$1.JSX.Element;
};

interface CarouselSectionWrapperProps {
    title: string;
    subtitle?: string;
    hasItems: boolean;
    children: React__default.ReactNode;
    emptyMessage?: string;
}
declare const CarouselSectionWrapper: ({ title, subtitle, hasItems, children, emptyMessage, }: CarouselSectionWrapperProps) => React__default.JSX.Element;

type SelectItemType = {
    id: string;
    label?: string;
    avatarUrl?: string;
    isDisabled?: boolean;
    supportingText?: string;
    icon?: FC | ReactNode;
};
interface CommonProps {
    hint?: string;
    label?: string;
    tooltip?: string;
    size?: "sm" | "md";
    placeholder?: string;
}

interface ComboBoxProps extends Omit<ComboBoxProps$1<SelectItemType>, "children" | "items">, RefAttributes<HTMLDivElement>, CommonProps {
    shortcut?: boolean;
    items?: SelectItemType[];
    popoverClassName?: string;
    shortcutClassName?: string;
    children: ListBoxProps<SelectItemType>["children"];
}
declare const ComboBox: ({ placeholder, shortcut, size, children, items, shortcutClassName, ...otherProps }: ComboBoxProps) => React$1.JSX.Element;

interface VideoModalProps {
    isOpen: boolean;
    onClose: () => void;
    videoUrl: string;
}
declare function VideoModal({ isOpen, onClose, videoUrl }: VideoModalProps): React$1.JSX.Element | null;

interface VideoPlayButtonProps {
    onClick: () => void;
    className?: string;
}
declare function VideoPlayButton({ onClick, className }: VideoPlayButtonProps): React$1.JSX.Element;

declare const Button: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const RoundButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const CloseButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const SocialButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const AppStoreButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const GooglePlayButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const ButtonGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Input: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const InputBase: {
    ({ ref, tooltip, shortcut, groupRef, size, isInvalid, isDisabled, icon: Icon, placeholder, wrapperClassName, tooltipClassName, inputClassName, iconClassName, ...inputProps }: Omit<InputBaseProps, "label" | "hint" | "isRequired">): React__default.JSX.Element;
    displayName: string;
};
declare const Textarea: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Checkbox: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const PrivacyCheckbox: typeof PrivacyCheckbox$1;
declare const Toggle: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Form: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const FormContainer: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const InputGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Label: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const HintText: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Select: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const SelectItem: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const MultiSelect: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const NativeSelect: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const RadioGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const RadioButton: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const DatePicker: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const DateRangePicker: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const PhotoWithFallback: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const LoadingIndicator: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Badge: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const BadgeWithDot: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const BadgeGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const RatingStars: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const RatingBadge: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Tooltip: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Avatar: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const AvatarLabelGroup: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const AvatarProfilePhoto: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const VerifiedTick: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const Breadcrumb: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const FeaturedIcon: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const ProgressBar: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const ProgressBarCircle: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const CircleProgressBar: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const PaginationDot: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const PaginationLine: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const PaginationPageDefault: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const PaginationPageMinimalCenter: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const GoogleMap: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;
declare const MarkdownRenderer: (props: Record<string, unknown>) => React__default.ReactElement<Record<string, unknown>, string | React__default.JSXElementConstructor<any>>;

export { AppStoreButton, Avatar, AvatarLabelGroup, AvatarProfilePhoto, Badge, BadgeGroup, BadgeWithDot, Breadcrumb, Button, ButtonGroup, Carousel, CarouselContext, CarouselSectionWrapper, Checkbox, CircleProgressBar, CloseButton, ComboBox, DatePicker, DateRangePicker, FeaturedIcon, Form, FormContainer, GoogleMap, GooglePlayButton, HintText, Input, InputBase, InputGroup, Label, LoadingIndicator, MarkdownRenderer, MultiSelect, NativeSelect, Pagination, PaginationDot, PaginationLine, PaginationPageDefault, PaginationPageMinimalCenter, PhotoWithFallback, PrivacyCheckbox, ProgressBar, ProgressBarCircle, RadioButton, RadioGroup, RatingBadge, RatingStars, RoundButton, Select, SelectItem, SlideoutMenu, SocialButton, StarIcon, Tabs, Tag, TagGroup, TagList, Textarea, Toggle, Tooltip, VerifiedTick, VideoModal, VideoPlayButton, Wreath, getStarProgress, useCarousel };
