import { ElementType, ReactNode } from 'react';
import { ActiveThreadRow } from '../hooks/use-top-active-threads-metrics';
import { ResourceThreadsRow } from '../hooks/use-top-resources-by-threads-metrics';
export type MemoryTab = 'threads' | 'resources';
/** Per-tab query state. Memory has two independent server queries (top
 *  threads + top resources) so loading/error are scoped to the active tab. */
type MemoryTabState<T> = {
    data: T[] | undefined;
    isLoading: boolean;
    isError: boolean;
};
export interface MemoryCardViewProps {
    threads: MemoryTabState<ActiveThreadRow>;
    resources: MemoryTabState<ResourceThreadsRow>;
    /** Optional drilldown for a thread row. Receives the raw hook row. */
    getThreadRowHref?: (row: ActiveThreadRow) => string | undefined;
    /** Optional drilldown for a resource row. Receives the raw hook row. */
    getResourceRowHref?: (row: ResourceThreadsRow) => string | undefined;
    /** Optional slot for top-bar action buttons. Function form receives the active tab. */
    actions?: ReactNode | ((tab: MemoryTab) => ReactNode);
    /** Override how drilldown links are rendered. Defaults to `<a>`. */
    LinkComponent?: ElementType;
}
export declare function MemoryCardView({ threads, resources, getThreadRowHref, getResourceRowHref, actions, LinkComponent, }: MemoryCardViewProps): import("react/jsx-runtime").JSX.Element;
export {};
