import { ElementModel as BuilderElementModel } from '../builder/dist/index.d.ts'; export type ElementModel = BuilderElementModel; export interface UMDElement { element: HTMLElement; className?: string; styles: string; } export interface ElementVisual extends UMDElement { className: string; } export type ContentElement = HTMLElement | null; export type ImageElement = HTMLImageElement | null; export type VideoElement = HTMLVideoElement | null; export type LinkElement = HTMLAnchorElement | null; export type MediaElement = HTMLImageElement | HTMLVideoElement | null; export interface ThemeProps { isThemeDark?: boolean; isThemeLight?: boolean; isThemeGold?: boolean; isThemeMaryland?: boolean; } export interface ColorProps { isTextColorWhite?: boolean; isTextColorBlack?: boolean; isAnimationLineRed?: boolean; } export interface SizeProps { isSizeSmall?: boolean; isSizeMedium?: boolean; isSizeLarge?: boolean; } export interface DisplayProps { isAligned?: boolean; hasBorder?: boolean; isTransparent?: boolean; isFullWidth?: boolean; isSticky?: boolean; isFixed?: boolean; hasBackground?: boolean; } export interface TypeProps { isTypePrimary?: boolean; isTypeSecondary?: boolean; isTypeOutline?: boolean; } export interface CommonContentProps { headline?: ContentElement; text?: ContentElement; actions?: ContentElement; eyebrow?: ContentElement; date?: ContentElement; } export interface ExtendedContentProps extends CommonContentProps { subHeadline?: ContentElement; description?: ContentElement; metadata?: ContentElement; } export interface LayoutProps { isTextCenter?: boolean; isTextRight?: boolean; isTextLeft?: boolean; isVerticalCenter?: boolean; isHorizontalCenter?: boolean; } export interface ContactProps { phone?: string; email?: string; address?: string; linkedin?: string; additionalContact?: ContentElement; } export interface SocialMediaProps { facebook?: string; twitter?: string; instagram?: string; youtube?: string; linkedin?: string; pinterest?: string; tiktok?: string; } export interface MediaProps { autoPlay?: boolean; loop?: boolean; muted?: boolean; poster?: string; controls?: boolean; } export interface AssetProps { image?: ImageElement | LinkElement; video?: VideoElement; isAspectStandard?: boolean; isScaled?: boolean; } export interface MediaComponentProps extends AssetProps, MediaProps { caption?: ContentElement; credit?: ContentElement; altText?: string; title?: string; } export interface ElementStyles { element?: Record; pseudoBefore?: Record; pseudoAfter?: Record; siblingAfter?: Record; subElement?: Record; } export interface StyleObject { className: string | string[]; [key: string]: any; } export interface BaseElementProps extends ThemeProps, ColorProps { element: HTMLElement; elementStyles?: ElementStyles; } export interface ConfigurationProps extends BaseElementProps { className: string; baseStyles?: Record; } export interface PersonLikeProps extends ThemeProps { name: ContentElement; job?: ContentElement; association?: ContentElement; pronouns?: ContentElement; image?: ImageElement; email?: string; phone?: string; } export interface DateTimeProps { startDate: Date | string; endDate?: Date | string; allDay?: boolean; timezone?: string; } export interface LocationInfo { title: string; address?: string; city?: string; state?: string; zip?: string; country?: string; coordinates?: { lat: number; lng: number; }; } export interface AnimationProps { includesAnimation?: boolean; animationDuration?: number; animationDelay?: number; animationType?: 'fade' | 'slide' | 'scale' | 'none'; } export interface LoadingProps { imageLoading?: 'eager' | 'lazy'; imageFetchPriority?: 'high' | 'low' | 'auto'; } export type ElementCreatorFn = (props: T) => ElementModel; export type ActionFunction = (props: BaseElementProps) => ElementModel; export type CallbackFunction = (arg: T) => void; export interface StyleModifierProps { styles: string; className: string; elementOptions?: ElementStyles; } export interface BuilderConfig { styleModifiers: (props: StyleModifierProps) => string; elementModifiers?: ((element: HTMLElement) => void)[]; } export interface BuilderProps extends BaseElementProps, ConfigurationProps { builderConfig: BuilderConfig; } export declare const ATTRIBUTE_THEME = "theme"; export declare const THEME_DARK = "dark"; export declare const THEME_LIGHT = "light"; export declare const THEME_GOLD = "gold"; export declare const THEME_MARYLAND = "maryland"; export declare const isImageElement: (element: any) => element is HTMLImageElement; export declare const isVideoElement: (element: any) => element is HTMLVideoElement; export declare const isLinkElement: (element: any) => element is HTMLAnchorElement; export declare const isButtonElement: (element: any) => element is HTMLButtonElement; export declare const isDivElement: (element: any) => element is HTMLDivElement; export declare const hasContent: (element: ContentElement) => element is HTMLElement; export declare const hasImageContent: (props: AssetProps) => props is Required>; export declare const hasVideoContent: (props: AssetProps) => props is Required>; export type WithRequired = T & Required>; export type Without = Partial>; export type DeepPartial = { [P in keyof T]?: T[P] extends object ? DeepPartial : T[P]; }; export type RequireAtLeastOne = { [K in keyof T]-?: Required> & Partial>>; }[keyof T]; export type ExtractProps = T extends ElementCreatorFn ? P : never; //# sourceMappingURL=_types.d.ts.map