import { type ButtonHTMLAttributes, type CSSProperties, type ImgHTMLAttributes } from 'react';
import { type CssLength } from '../../../utils/css';
export type MoviePosterPhoto = {
src: string;
alt?: string;
srcSet?: ImgHTMLAttributes['srcSet'];
sizes?: ImgHTMLAttributes['sizes'];
objectPosition?: CSSProperties['objectPosition'];
loading?: ImgHTMLAttributes['loading'];
decoding?: ImgHTMLAttributes['decoding'];
fetchPriority?: ImgHTMLAttributes['fetchPriority'];
};
export type MoviePosterFont = {
name: string;
family: string;
};
export type MoviePosterSnapshot = {
photo: MoviePosterPhoto;
title: string;
tagline: string;
font: MoviePosterFont;
accentColor: string;
titleRow: number;
subtitleRow: number;
starringRow: number;
starring: string;
};
export type MoviePosterProps = Omit, 'children' | 'className' | 'color' | 'style' | 'type'> & {
className?: string;
photoClassName?: string;
textClassName?: string;
billingClassName?: string;
style?: CSSProperties;
photos?: readonly MoviePosterPhoto[];
titles?: readonly string[];
taglineStarts?: readonly string[];
taglineEnds?: readonly string[];
starringNames?: readonly string[];
fonts?: readonly MoviePosterFont[];
accentColors?: readonly string[];
width?: CssLength;
maxWidth?: CssLength;
frameColor?: string;
backgroundColor?: string;
textColor?: string;
imageFilter?: CSSProperties['filter'];
rows?: number;
cols?: number;
random?: () => number;
showBilling?: boolean;
generateLabel?: string;
onPosterChange?: (poster: MoviePosterSnapshot) => void;
};
export declare const MoviePoster: ({ className, photoClassName, textClassName, billingClassName, style, photos, titles, taglineStarts, taglineEnds, starringNames, fonts, accentColors, width, maxWidth, frameColor, backgroundColor, textColor, imageFilter, rows, cols, random, showBilling, generateLabel, onPosterChange, onClick, "aria-label": ariaLabel, ...props }: MoviePosterProps) => import("react/jsx-runtime").JSX.Element;