import { DynamicComponentModel } from '../dynamic-component'; import type { Snippet } from 'svelte'; export declare class GroupedSidebarSettings { groups: ReadonlyArray; selectedGroupId: string; allowMultipleExpandedSections: boolean; allowCloseAllSections: boolean; hideGroupsWhenSingle: boolean; hideSectionsWhenSingle: boolean; expandToFill: boolean; constructor(init: { groups: SidebarGroupInit[]; initiallySelectedGroupId?: string; /** Allow more than one section open at the same time @default false */ allowMultipleExpandedSections?: boolean; /** Allow collapsing every section (otherwise at least one stays open) @default false */ allowCloseAllSections?: boolean; /** Hide the group tabs when there is only one group @default false */ hideGroupsWhenSingle?: boolean; /** Hide section headers when a group has only one section @default false */ hideSectionsWhenSingle?: boolean; /** Expanded sections stretch to fill available height @default true */ expandToFill?: boolean; }); } export declare class SidebarGroupModel { readonly id: string; name: string; sections: ReadonlyArray; onSelected: () => void; readonly isValid: boolean; private _validator; constructor(init: SidebarGroupInit); get validator(): SidebarValidator; updateValidator: (validator: SidebarValidator) => void; } export declare class SidebarGroupSectionModel { readonly id: string; name: string; expanded: boolean; component: DynamicComponentModel | Snippet; withoutPaddings: boolean; readonly isValid: boolean; private _validator; private _onExpandedCallback; constructor(init: SidebarSectionInit); get validator(): SidebarValidator | null; onExpandedChanged: (val: boolean) => void; updateValidator: (validator: SidebarValidator) => void; } export interface SidebarGroupInit { id?: string; name: string; sections: SidebarSectionInit[]; onSelected?: () => void; /** Aggregated with section validators to determine group validity */ validator?: SidebarValidator; } export interface SidebarSectionInit { id?: string; name: string; expanded?: boolean; /** Remove default content padding @default false */ withoutPaddings?: boolean; component: DynamicComponentModel | Snippet; onExpandedChanged?: (val: boolean) => void; /** Shows error styling on section title when invalid */ validator?: SidebarValidator; } export type SidebarValidator = { isValid: boolean; };