import React from "react";
type DetailsPanelProps<T> = {
    /**
     * Function to get the content to show in the details panel for a given row.
     * When provided, an expand toggle column is added automatically.
     */
    getContent: (rowData: T) => React.ReactNode;
    /**
     * Determines whether a row can be expanded to show details panel content.
     * @default () => true
     */
    isRowExpandable?: (rowData: T) => boolean;
    /**
     * Controlled list of expanded row IDs.
     * Use with `onExpandedRowIdsChange` for controlled usage, or `defaultExpandedRowIds` for uncontrolled.
     */
    expandedRowIds?: string[];
    /**
     * Initial list of expanded row IDs for uncontrolled usage.
     * @default []
     */
    defaultExpandedRowIds?: string[];
    /**
     * Called when the list of expanded row IDs changes.
     */
    onExpandedRowIdsChange?: (ids: string[]) => void;
    /**
     * Returns the height (in px) or `"auto"` for a row's details panel.
     * When a number is returned, the panel scrolls within that fixed height.
     * @default "auto"
     */
    getHeight?: (rowData: T) => number | "auto";
    /**
     * Shows an expand-all toggle button in the expand column header.
     * @default false
     */
    showExpandAll?: boolean;
};
type DataTableDetailsPanelContextT = {
    isExpanded: (id: string) => boolean;
    isDetailsPanelExpandable: (id: string) => boolean;
    toggleExpansion: (id: string) => void;
    toggleAll: () => void;
    isAllExpanded: boolean;
    getDetailsPanelContent?: (row: unknown) => React.ReactNode;
    getDetailsPanelHeight?: (row: unknown) => number | "auto";
    showExpandAll: boolean;
    enableDetailsPanel: boolean;
};
declare const useDataTableDetailsPanel: <S extends boolean = true>(strict?: S | undefined, errorMessageOverride?: string) => S extends true ? DataTableDetailsPanelContextT : DataTableDetailsPanelContextT | undefined;
declare function DataTableDetailsPanelProvider<T>({ children, detailsPanel, }: {
    detailsPanel?: DetailsPanelProps<T>;
} & {
    children: React.ReactNode;
}): React.JSX.Element;
declare function getDataTableDetailsPanelId(tableId: string, rowId: string): string;
export { DataTableDetailsPanelProvider, getDataTableDetailsPanelId, useDataTableDetailsPanel, };
export type { DetailsPanelProps };
