import { HTMLAttributes, ReactNode } from 'react';
/** Imperative handle exposed via `ref` to control the panel from outside. */
export interface PanelCardHandle {
    expand: () => void;
    collapse: () => void;
    toggle: () => void;
}
export interface PanelCardProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
    /** Icon placed at the leading edge of the header. */
    icon?: ReactNode;
    /** Primary title text of the panel. */
    title: ReactNode;
    /** Controls rendered at the trailing edge of the header, before the chevron. */
    headerActions?: ReactNode;
    /**
     * Whether the panel starts expanded.
     * Defaults to `true`.
     */
    defaultExpanded?: boolean;
    /**
     * Show the collapse/expand chevron toggle in the header.
     * Set to `false` to make the panel non-collapsible.
     * Defaults to `true`.
     */
    collapsible?: boolean;
    /**
     * Notification callback fired whenever the internal expanded state changes.
     * The parent observes — it does NOT control the state.
     * Use the imperative handle (`ref`) to drive expansion from outside.
     */
    onExpandedChange?: (expanded: boolean) => void;
    children?: ReactNode;
    /**
     * Leading content of the footer bar (feedback text, status badge, etc.).
     * The footer zone is only rendered when `footer` or `footerActions` is set.
     */
    footer?: ReactNode;
    /** Controls at the trailing edge of the footer bar. */
    footerActions?: ReactNode;
}
/**
 * Card with a structured header / body / footer layout.
 *
 * The body (and footer) can be collapsed and expanded. State is managed
 * internally; use a `ref` to drive it imperatively from a parent component:
 *
 * ```tsx
 * const panelRef = useRef<PanelCardHandle>(null);
 *
 * <button onClick={() => panelRef.current?.toggle()}>Toggle panel</button>
 *
 * <PanelCard
 *   ref={panelRef}
 *   icon={<Icon icon={FolderOpen} />}
 *   title="My Panel"
 *   headerActions={<Button variant="flat">Edit</Button>}
 *   onExpandedChange={(open) => console.log("panel:", open)}
 *   footer={<Text variant="caption" color="dim">Saved 2 min ago</Text>}
 *   footerActions={<Button variant="suggested">Save</Button>}
 * >
 *   <p>Panel body content</p>
 * </PanelCard>
 * ```
 */
export declare const PanelCard: import('react').ForwardRefExoticComponent<PanelCardProps & import('react').RefAttributes<PanelCardHandle>>;
