export interface ElementRef { element: HTMLElement | DocumentFragment; styles?: string; events?: { load?: () => void; destroy?: () => void; recalculate?: () => void; resize?: () => void; [key: string]: any; }; } export interface ComponentRef { element: HTMLElement | DocumentFragment; styles?: string; events?: { load?: () => void; destroy?: () => void; recalculate?: () => void; resize?: () => void; [key: string]: any; }; } export interface SlotConfig { required?: boolean; allowedElements?: string[]; deprecated?: string; replacement?: string; } export type SlotConfiguration = Record; export interface ComponentEventDetail { tagName: string; element: HTMLElement; timestamp?: number; } export interface ComponentReadyDetail extends ComponentEventDetail { shadowRoot: ShadowRoot; ref?: any; } export interface ComponentErrorDetail extends ComponentEventDetail { type: 'validation' | 'initialization' | 'runtime'; message: string; details?: any; } export interface ComponentResizeDetail extends ComponentEventDetail { previousSize?: { width: number; height: number; }; currentSize: { width: number; height: number; }; source?: 'attribute' | 'window' | 'manual'; } export type CreateComponentFunction = (element: HTMLElement) => ComponentRef; export type ComponentRegistration = () => void; export type ComponentFactory = (props: TProps) => TReturn; export interface ThemeProps { isThemeLight?: boolean; isThemeDark?: boolean; isThemeMaryland?: boolean; } export interface VisualStateProps { isVisualOpen?: boolean; isShowIcon?: boolean; isTransparent?: boolean; isBordered?: boolean; } export interface LayoutProps { isFixed?: boolean; isHidden?: boolean; isAlignmentRight?: boolean; isFullImage?: boolean; } export interface BaseContentProps { headline?: HTMLElement | null; text?: HTMLElement | null; actions?: HTMLElement | null; } export interface ExtendedContentProps extends BaseContentProps { eyebrow?: HTMLElement | null; image?: HTMLElement | null; content?: HTMLElement | null; } export interface ComponentConfiguration { tagName: string; slots?: SlotConfiguration; createComponent: CreateComponentFunction; attributes?: any | any[]; beforeConnect?: (ref: ComponentRef, shadow: ShadowRoot) => void; afterConnect?: (ref: ComponentRef, shadow?: ShadowRoot) => void; onReady?: (ref: ComponentRef) => void; } export interface ComponentEvents { callback?: (shadow?: ShadowRoot) => void; close?: (options?: { hasAnimation?: boolean; }) => void; hide?: () => void; load?: () => void; loadAnimation?: () => void; open?: (options?: { hasAnimation?: boolean; }) => void; resize?: () => void; setPosition?: (options?: { value?: number | null; }) => void; show?: () => void; size?: () => void; } export interface TypedComponentRef { element: HTMLElement | DocumentFragment; styles?: string; events?: ComponentEvents & Record; } export interface AttributeElementRef { element: HTMLElement | DocumentFragment; styles?: string; events?: { load?: () => void; destroy?: () => void; recalculate?: () => void; resize?: () => void; [key: string]: any; }; } declare global { interface HTMLElementEventMap { 'component:ready': CustomEvent; 'component:error': CustomEvent; 'component:resize': CustomEvent; 'accordion:open': CustomEvent; 'accordion:close': CustomEvent; 'modal:show': CustomEvent; 'modal:hide': CustomEvent; } } //# sourceMappingURL=_types.d.ts.map