export type CustomProps = Exclude; export type PropChangeEvent = { [K in CustomProps]: { changedProp: K; oldValue: T[K] | undefined; newValue: T[K] | undefined; }; }[CustomProps]; export type LocalStateChangeEvent = { changedProps: K; oldState: T; newState: T; }; export interface GlobalState { isMuted: boolean; keyboardNavEnabled: boolean; popoverOverlayHslArray: number[]; popoverOverlayOpacity: number; playPopoverVideos: boolean; } export interface GlobalStateChangeEvent { changedProps: (keyof GlobalState)[]; oldState: GlobalState; newState: GlobalState; } export interface Widget extends HTMLElement { previewLoadingColors: string; startIndex?: number; widgetSettings: WidgetSettings; feedMetadata: FeedMetadata; posts: Posts; register: (name?: string) => string; errorMessage: string; } export type WidgetProp = keyof Omit; export type WidgetSettings = { type: string; loadingColor: string; loadingColorTone: string; breakpoints: { [key: string]: Breakpoint; }; alignment: string; maxWidth: string; constrainWidth: boolean; onHover: string; hoverOverlayColor: string; hoverOverlayCustomColor: string; hoverOverlayOpacity: number; hoverEffect: string; onPostClick: string; customLinkURL: string; linkTarget: string; previewVideosOnHover: boolean; autoplayVideos: boolean; popupColorTheme: string; iconColor: string; textColor: string; buttonColor: string; buttonHoverColor: string; buttonIconColor: string; buttonIconHoverColor: string; label: string; labelLink: string; lazyLoadMedia: boolean; }; export type FeedMetadata = { username: string; profilePictureUrl: string; website: string; followersCount: number; hashtags: Array; showBranding: boolean; }; export type Breakpoint = { width: string; numPosts: number; borderRadius: string; applyBorderRadiusToContainer: boolean; postAspectRatio: [number, number]; numColumns: number; gap: { [key: string]: number; }; galleryWallLayout: Array; galleryWallNamedLayout: string; forcePostAspectRatio: boolean; snapToSlide: boolean; bindToScrollPos: boolean; showControls: boolean; controlsPosition: 'top' | 'bottom' | 'sides'; controlsJustification: 'left' | 'right' | 'center' | 'split'; controlsMargin: number; buttonBorderRadius: number; showLabel: boolean; labelPosition: 'top' | 'bottom'; labelJustification: 'left' | 'right' | 'center'; postHeight: number; }; export type Breakpoints = { [key: string]: Breakpoint; }; export interface Post { id: string; mediaUrl: string; post: Post; dimensions: Dimensions; colorPalette: { [key: string]: string; }; sizes: PostSizes; widgetSettings: WidgetSettings; feedMetadata: FeedMetadata; permalink: string; caption: string; prunedCaption: string; mediaType: string; thumbnailUrl: string; play: () => void; pause: () => void; children: Posts; hasRowGap: boolean; isReel: boolean; currentSlideIndex: number; mediaUrlIsVideo: boolean; } export type Posts = Array; export type Dimensions = { height: number; width: number; }; export type PostSizes = { small: PostSize; medium: PostSize; large: PostSize; full: PostSize; }; export type PostSize = { height: number; width: number; mediaUrl: string; uncropped?: { height: number; width: number; }; }; //# sourceMappingURL=types.d.ts.map