/** * Panel Extension Type Definitions * * Re-exports core types from @principal-ade/panel-framework-core */ export type { DataSlice, WorkspaceMetadata, RepositoryMetadata, FileTreeSource, ActiveFileSlice, PanelEventType, PanelEvent, PanelEventEmitter, PanelActions, PanelContextValue, PanelComponentProps, PanelMetadata, PanelLifecycleHooks, PanelDefinition, PanelModule, PanelRegistryEntry, PanelLoader, PanelRegistryConfig, } from '@principal-ade/panel-framework-core'; import type { PanelActions as CorePanelActions, PanelComponentProps as CorePanelComponentProps, DataSlice } from '@principal-ade/panel-framework-core'; export type { FileTree } from '@principal-ai/repository-abstraction'; import type { FileTree } from '@principal-ai/repository-abstraction'; /** * Repository capabilities slice data */ export interface RepoCapabilitiesData { hasClaudeWorkflow: boolean; claudeWorkflowPath?: string; } /** * Typed context for KanbanPanel and TaskDetailPanel * Both panels use fileTree slice * * Note: context is for READ-ONLY data access (slices, metadata). * For file operations, use actions instead. */ export interface KanbanPanelContext { fileTree: DataSlice; /** Optional: Repository capabilities (Claude workflow detection) */ repoCapabilities?: DataSlice; } /** * Extended panel actions with file system operations. * * Design principle: `actions` is for all panel-initiated operations: * - File operations (read, write, delete, createDir) * - Host commands (openFile, openGitDiff, navigateToPanel) * * `context` is for READ-ONLY data access (slices, scope metadata). * `events` is for peer-to-peer panel communication (pub/sub). */ export interface KanbanPanelActions extends CorePanelActions { /** Read file contents */ readFile?: (path: string) => Promise; /** Write content to file */ writeFile?: (path: string, content: string) => Promise; /** Delete a file */ deleteFile?: (path: string) => Promise; /** Create a directory */ createDir?: (path: string) => Promise; /** Check if a file exists */ exists?: (path: string) => Promise; /** Delete a task by ID */ deleteTask?: (taskId: string) => Promise; } /** * Typed panel props for KanbanPanel */ export type KanbanPanelPropsTyped = CorePanelComponentProps; /** * Typed panel props for TaskDetailPanel */ export type TaskDetailPanelPropsTyped = CorePanelComponentProps; //# sourceMappingURL=index.d.ts.map