import { type CSSProperties, type ImgHTMLAttributes, type ReactNode } from 'react';
import { type CssLength } from '../../../utils/css';
export type HomeVisionPageImage = string | {
src: string;
alt?: string;
srcSet?: string;
sizes?: string;
objectPosition?: string;
loading?: ImgHTMLAttributes['loading'];
fetchPriority?: ImgHTMLAttributes['fetchPriority'];
};
export type HomeVisionPageAction = {
id?: string | number;
label: string;
icon?: ReactNode;
imageSrc?: string;
href?: string;
target?: string;
rel?: string;
disabled?: boolean;
onSelect?: VoidFunction;
};
export type HomeVisionPageMediaItem = string | {
id?: string | number;
type?: 'image' | 'video';
src: string;
alt?: string;
label?: string;
poster?: string;
objectPosition?: string;
href?: string;
target?: string;
rel?: string;
autoPlay?: boolean;
loop?: boolean;
muted?: boolean;
controls?: boolean;
};
type HomeVisionPageViewBase = {
id: string | number;
label: string;
icon?: ReactNode;
selected?: boolean;
disabled?: boolean;
onSelect?: VoidFunction;
ariaLabel?: string;
};
export type HomeVisionPageView = (HomeVisionPageViewBase & {
type: 'actions';
actions?: HomeVisionPageAction[];
actionRowPattern?: number[];
}) | (HomeVisionPageViewBase & {
type: 'images' | 'videos';
items?: HomeVisionPageMediaItem[];
emptyText?: string;
}) | (HomeVisionPageViewBase & {
type: 'custom';
content: ReactNode;
});
export type HomeVisionPageProps = {
image?: HomeVisionPageImage;
actions?: HomeVisionPageAction[];
options?: HomeVisionPageAction[];
views?: HomeVisionPageView[];
activeViewId?: string | number;
defaultViewId?: string | number;
onViewChange?: (view: HomeVisionPageView) => void;
actionRowPattern?: number[];
optionRowPattern?: number[];
className?: string;
contentClassName?: string;
style?: CSSProperties;
minHeight?: CssLength;
imageScale?: number;
imageBlur?: CssLength;
movementStrength?: number;
ariaLabel?: string;
actionsLabel?: string;
optionsLabel?: string;
menuLabel?: string;
sidebarLabel?: string;
brandMark?: ReactNode;
showBrandMark?: boolean;
};
export declare const HomeVisionPage: ({ image, actions, options, views, activeViewId, defaultViewId, onViewChange, actionRowPattern, optionRowPattern, className, contentClassName, style, minHeight, imageScale, imageBlur, movementStrength, ariaLabel, actionsLabel, optionsLabel, menuLabel, sidebarLabel, brandMark, showBrandMark, }: HomeVisionPageProps) => import("react/jsx-runtime").JSX.Element;
export {};