import { TNode, Value } from '@tempots/dom';
/**
 * Configuration options for the {@link ScrollablePanel} component.
 */
export type ScrollablePanelOptions = {
    /**
     * Optional header content rendered above the scrollable body.
     * Remains fixed while the body scrolls.
     */
    header?: TNode;
    /**
     * Optional footer content rendered below the scrollable body.
     * Remains fixed while the body scrolls.
     */
    footer?: TNode;
    /**
     * The main scrollable content area of the panel.
     */
    body: TNode;
    /**
     * Whether to display scroll shadow indicators at the top/bottom edges
     * when the body content overflows. Shadows help indicate scrollable content
     * that is currently out of view.
     * @default true
     */
    shadowOnScroll?: Value<boolean>;
};
/**
 * Renders a panel with a scrollable body and optional fixed header/footer.
 * Automatically displays scroll shadow indicators at the top and bottom
 * edges when content overflows, providing a visual cue that more content
 * is available.
 *
 * The shadow state updates reactively based on the scroll position:
 * - No shadow when content fits without scrolling
 * - Bottom shadow when scrolled to top (more content below)
 * - Top shadow when scrolled to bottom (more content above)
 * - Both shadows when scrolled to the middle
 *
 * @param options - Configuration options for the scrollable panel.
 * @param children - Additional content nodes appended after the footer.
 * @returns A scrollable panel element with shadow indicators.
 *
 * @example
 * ```typescript
 * // Panel with header and scrollable body
 * ScrollablePanel({
 *   header: html.h2('File Browser'),
 *   body: html.div(
 *     ...files.map(file => html.div(file.name))
 *   ),
 *   footer: html.div('10 files'),
 * })
 *
 * // Panel without scroll shadows
 * ScrollablePanel({
 *   body: html.div('Content here'),
 *   shadowOnScroll: false,
 * })
 * ```
 */
export declare function ScrollablePanel({ header, footer, body, shadowOnScroll }: ScrollablePanelOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
