import { type HTMLAttributes, type ReactNode } from 'react'; import { type VariantProps } from 'class-variance-authority'; import { type TaskItem } from '../task-card'; declare const taskTrayVariants: (props?: ({ size?: "sm" | "md" | null | undefined; } & import("class-variance-authority/types").ClassProp) | undefined) => string; /** * Curated imperative handle for TaskTray. Exposed as the forwardRef * target so a future agent / MCP UI bridge can drive the tray without * touching the DOM. See `task-tray.agent.ts`. */ export interface TaskTrayHandle { getItems: () => Array<{ id: string; status: string; }>; selectItem: (id: string) => void; toggleDone: (id: string) => void; dismiss: (id: string) => void; } export interface TaskTrayProps extends Omit, 'onClick' | 'id'>, VariantProps { /** * Stable instance id. Surfaced on the root as `data-component-id` so * an agent / MCP UI bridge can address this specific tray. */ id?: string; /** Tasks rendered inside the panel. */ items: TaskItem[]; /** Section title — rendered in the header. Localised by the consumer. */ title?: string; /** Visual density forwarded to each TaskCard. */ size?: 'sm' | 'md'; /** Fires when the user activates a task (click / Enter / Space). */ onOpenTask?: (item: TaskItem) => void; /** Fires when the host should toggle the done state of a task. Used by agent integration. */ onToggleDone?: (item: TaskItem) => void; /** Fires when the host should dismiss / remove a task. Used by agent integration. */ onDismissTask?: (item: TaskItem) => void; /** Fires when the user activates the header "Add" affordance. */ onAddTask?: () => void; /** Localised label for the "Add" affordance. Defaults to `ui.taskTray.add`. */ addLabel?: string; /** When true the panel renders skeleton placeholders. */ loading?: boolean; /** Render an empty state when `items` is empty and `loading` is false. */ emptyTitle?: string; emptyDescription?: string; /** Optional CTA wired into the empty state (EmptyState primaryAction). */ emptyAction?: { label: string; onClick: () => void; }; /** * Pinned footer link (e.g. "All my undone tasks (12)"). Localised by * the consumer; rendered after the list, before the section closes. */ viewAllLabel?: string; /** Fires when the footer link is activated. Required to render it. */ onViewAll?: () => void; /** * Per-row trailing action toolbar, forwarded to each TaskCard's * `actions` slot. */ renderItemActions?: (item: TaskItem) => ReactNode; /** * Constrain the list to the tray's own height and scroll inside it — * pair with a height/max-height on `className`. The scroll region is * keyboard-focusable so it stays operable without a pointer. */ scrollable?: boolean; } export declare const TaskTray: import("react").ForwardRefExoticComponent>; export {}; //# sourceMappingURL=task-tray.d.ts.map