import type { ProjectItem, ProjectStatus } from '../types.js'; import type { ProjectBoardMoveIntent } from './project-board-types.js'; interface ProjectBoardBaseProps { /** Provider project identity, forwarded only to the injected move action. */ projectId: string; /** Canonical, ordered provider statuses. Their supplied order is preserved. */ statuses: readonly ProjectStatus[]; /** Authoritative provider items; this adapter never reorders them locally. */ items: readonly ProjectItem[]; onselect?: (item: ProjectItem) => void; label?: string; } interface ReadOnlyProjectBoardProps { /** Omit both callbacks to expose a read-only controlled board. */ onmove?: never; onrefresh?: never; } interface MovableProjectBoardProps { /** * Browser-safe mutation boundary. Its consumer attaches authorization in a * server action before it calls ProjectBoardService. */ onmove: (intent: ProjectBoardMoveIntent) => void | Promise; /** Required reconciliation of controlled cards after every move attempt. */ onrefresh: () => void | Promise; } /** A controlled project board is movable only with an authoritative refresh. */ export type Props = ProjectBoardBaseProps & (ReadOnlyProjectBoardProps | MovableProjectBoardProps); declare const ProjectBoard: import("svelte").Component; type ProjectBoard = ReturnType; export default ProjectBoard; //# sourceMappingURL=ProjectBoard.svelte.d.ts.map