interface Window { ArveBlockJsBefore: { settings: Record; options: { mode: string; align_maxwidth: number | number; [key: string]: unknown; }; settingPageUrl: string; gutenbergActive: boolean; }; } interface Depends { key: string; value: string; } interface BuildControlsProps { attributes: Record; setAttributes: (attributes: Record) => void; } interface Setting { label: string; tab: string; category: string; type: string; description?: string; placeholder?: string; options?: Record; ui?: string; ui_element: string; ui_element_type: 'text' | 'number' | 'checkbox'; depends?: Depends[]; default?: unknown; shortcode?: boolean; option?: boolean; } interface BuildControlsProps { attributes: Record; setAttributes: (attributes: Record) => void; } interface GutenbergSelectOption { label: string; value: string; }