import type { Component, Snippet } from 'svelte'; import type { HTMLAttributes } from 'svelte/elements'; export interface LayoutTab { path: string; name: string; icon: Component; isActive: boolean; hidden?: boolean; } export interface LayoutNotification { path: string; success: boolean; message: string; showNotification: boolean; } export interface LayoutProps extends HTMLAttributes { activeTab: string; switchTab: (tab: string) => void; tabs: LayoutTab[]; main?: Snippet; sidebar?: Snippet; previewBar?: Snippet; footer?: Snippet; formKey: string; editMode?: boolean; showFooter?: boolean; showSidebar?: boolean; showTabs?: boolean; showPreviewBar?: boolean; sidebarWidth?: string; componentName?: string; instanceName?: string; containerMode?: boolean; footerSize?: 'normal' | 'large'; notifications?: LayoutNotification[]; } export interface LayoutRoute { path: string; name: string; icon: Component; hidden?: boolean; } export interface LayoutEvents { tabSwitch: { detail: string; }; sidebarToggle: { detail: boolean; }; }