import { HTMLAttributes, ReactNode } from 'react';
import { IconDefinition } from '@gnome-ui/icons';
export interface SidebarSectionHandle {
    expand: () => void;
    collapse: () => void;
    toggle: () => void;
}
export interface SidebarSectionProps extends HTMLAttributes<HTMLElement> {
    /**
     * Section heading. Rendered in small caps above the items.
     * Omit for an untitled section (e.g. the first group in a sidebar).
     */
    title?: string;
    /** Icon rendered left of the title. Same type as `SidebarItem.icon`. */
    icon?: IconDefinition;
    /** Whether the section body can be toggled open/closed. Defaults to `false`. */
    collapsible?: boolean;
    /** Initial open state when `collapsible` is true. Defaults to `true`. */
    defaultOpen?: boolean;
    /** Controlled open state. */
    open?: boolean;
    /** Called when open state changes. */
    onOpenChange?: (open: boolean) => void;
    children?: ReactNode;
}
/**
 * Named group of `SidebarItem` entries inside a `Sidebar`.
 *
 * Sections are separated by a thin divider. The title and icon are optional.
 * When `collapsible` is true the body can be toggled via the header button or
 * imperatively via a `ref` (`expand`, `collapse`, `toggle`).
 *
 * In rail (icon-only) mode the body is always visible regardless of open state.
 * When a sidebar filter is active and no children match, the section is hidden.
 *
 * @see https://gnome.pages.gitlab.gnome.org/libadwaita/doc/main/class.Sidebar.html
 */
export declare const SidebarSection: import('react').ForwardRefExoticComponent<SidebarSectionProps & import('react').RefAttributes<SidebarSectionHandle>>;
