import { PillNavItem, SidebarToolSection } from '../types'; import { FormEnhancements, FormSchema } from '../types/form-builder'; import { ControlModel, ControlModelBinding, ControlSchema, ControlWorkspaceOptions } from '../composables/useControlSchema'; interface Props { /** Optional chrome title rendered above generated sections. */ title?: string; /** Optional secondary chrome copy rendered below title. */ subtitle?: string; /** Optional compact badge/count rendered in the chrome header. */ badge?: string | number; /** Map of view IDs to their tool sections */ panels?: Record; /** Which view's panels to display. Defaults to the first non-empty panel view. */ activeView?: string; /** Floating shell with absolute positioning. Prefer letting `AppLayout` own this; it stays for standalone use. */ floating?: boolean; /** Section density. `compact` (default) is the 36px header row; `comfortable` restores the roomier spacing. */ density?: 'compact' | 'comfortable'; /** @deprecated Compact is now the default; removed in MINT 1.4. Pass `density="comfortable"` for the roomier layout. */ dense?: boolean; /** Width when visible. */ width?: string; /** Position sidebar on left or right side */ side?: 'left' | 'right'; /** Toggle state map: sectionId → boolean */ toggleState?: Record; /** Optional FormBuilder schemas keyed by section ID. Used when no section slot is provided. */ forms?: Record; /** Generated view IDs from useControlSchema(). Consumed for clean v-bind ergonomics. */ viewIds?: string[]; /** Generated AppTopBar pillNav-compatible view items from useControlSchema(). Consumed for clean v-bind ergonomics. */ viewItems?: PillNavItem[]; /** Default view ID used when activeView is omitted. */ defaultView?: string; /** Model returned by defineControlModel(), or a raw nested ControlModel for one-step sidebar/form generation. */ model?: ControlModel | ControlModelBinding; /** Compact control schema. When provided, AppSidebar generates panels, section forms, and default values. */ controls?: ControlSchema; /** Options passed to compact control schema generation, including shared initialValues. */ controlOptions?: ControlWorkspaceOptions; /** DOM id for the scrollable content area. Use with Teleport when route/tab children own sidebar controls. */ contentId?: string; /** Render the sidebar shell even when no panel matches the active view. Useful for default-slot or Teleport-driven sidebars. */ showWhenEmpty?: boolean; /** Shared values for auto-rendered section forms. Supports default v-model. */ modelValue?: Record; /** Shared values for auto-rendered section forms */ values?: Record; /** Runtime FormBuilder enhancements for auto-rendered section forms */ formEnhancements?: FormEnhancements>; /** Show submit/cancel actions inside auto-rendered section forms */ showFormActions?: boolean; /** Loading/saving state for auto-rendered section forms */ formLoading?: boolean; /** Disabled state for auto-rendered section forms */ formDisabled?: boolean; /** Readonly state for auto-rendered section forms */ formReadonly?: boolean; /** Size passed to auto-rendered section forms */ formSize?: 'sm' | 'md' | 'lg'; /** Show a built-in collapse/expand button in the sidebar chrome. */ collapsible?: boolean; /** Controlled collapsed state. */ collapsed?: boolean; /** Initial collapsed state when collapsed is uncontrolled. */ defaultCollapsed?: boolean; /** Width when collapsed. */ collapsedWidth?: string; /** Accessible label for the collapse action. */ collapseButtonLabel?: string; /** Accessible label for the expand action. */ expandButtonLabel?: string; } declare function toggleCollapsed(): void; declare function expandCollapsed(): void; declare var __VLS_1: { collapsed: boolean; toggleCollapsed: typeof toggleCollapsed; }, __VLS_10: `section-${string}`, __VLS_11: {}, __VLS_22: { sections: SidebarToolSection[]; activeView: string; values: Record; }, __VLS_24: { sections: SidebarToolSection[]; expand: typeof expandCollapsed; }, __VLS_26: {}, __VLS_28: {}; type __VLS_Slots = {} & { [K in NonNullable]?: (props: typeof __VLS_11) => any; } & { header?: (props: typeof __VLS_1) => any; } & { default?: (props: typeof __VLS_22) => any; } & { collapsed?: (props: typeof __VLS_24) => any; } & { footer?: (props: typeof __VLS_26) => any; } & { 'collapsed-footer'?: (props: typeof __VLS_28) => any; }; declare const __VLS_base: import('vue').DefineComponent) => any; "update:values": (values: Record) => any; "update:toggle": (sectionId: string, value: boolean) => any; "update:collapsed": (value: boolean) => any; "section-action": (sectionId: string, actionId: string) => any; "form-submit": (sectionId: string, values: Record) => any; "form-cancel": (sectionId: string) => any; }, string, import('vue').PublicProps, Readonly & Readonly<{ "onUpdate:modelValue"?: ((values: Record) => any) | undefined; "onUpdate:values"?: ((values: Record) => any) | undefined; "onUpdate:toggle"?: ((sectionId: string, value: boolean) => any) | undefined; "onUpdate:collapsed"?: ((value: boolean) => any) | undefined; "onSection-action"?: ((sectionId: string, actionId: string) => any) | undefined; "onForm-submit"?: ((sectionId: string, values: Record) => any) | undefined; "onForm-cancel"?: ((sectionId: string) => any) | undefined; }>, { values: Record; modelValue: Record; title: string; width: string; floating: boolean; density: "compact" | "comfortable"; subtitle: string; collapsed: boolean; badge: string | number; controlOptions: ControlWorkspaceOptions; model: ControlModel | ControlModelBinding; viewIds: string[]; viewItems: PillNavItem[]; defaultView: string; activeView: string; panels: Record; forms: Record; dense: boolean; collapsible: boolean; side: "left" | "right"; toggleState: Record; contentId: string; showWhenEmpty: boolean; showFormActions: boolean; formLoading: boolean; formDisabled: boolean; formReadonly: boolean; formSize: "sm" | "md" | "lg"; defaultCollapsed: boolean; collapsedWidth: string; collapseButtonLabel: string; expandButtonLabel: string; }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLElement>; declare const __VLS_export: __VLS_WithSlots; declare const _default: typeof __VLS_export; export default _default; type __VLS_WithSlots = T & { new (): { $slots: S; }; };