/**
 * Wire global window events used by the control center canvas to the
 * appropriate handlers. The canvas listens for cross-component requests
 * dispatched as CustomEvents:
 *
 *   - shep:add-repository           → addRepoAndFocus(path)
 *   - shep:feature-created          → createFeatureNode(...)
 *   - shep:feature-delete-requested → handleDeleteFeature(...)
 *   - shep:feature-archive-requested → handleArchiveFeature(...)
 *   - shep:feature-unarchive-requested → handleUnarchiveFeature(...)
 *
 * Extracted from control-center-inner.tsx so the parent component stays
 * focused on graph state + rendering, not event-bus plumbing.
 */
import type { CanvasNodeType } from '../../features/features-canvas/index.js';
import type { FeatureNodeData } from '../../common/feature-node/index.js';
export type CreateFeatureNodeFn = (sourceNodeId: string | null, dataOverride?: Partial<FeatureNodeData>, edgeType?: string) => string;
export interface CanvasEventListenerHandlers {
    addRepoAndFocus: (path: string) => void;
    createFeatureNode: CreateFeatureNodeFn;
    nodes: CanvasNodeType[];
    handleDeleteFeature: (featureId: string, cleanup?: boolean, cascadeDelete?: boolean, closePr?: boolean) => void;
    handleArchiveFeature: (featureId: string) => void;
    handleUnarchiveFeature: (featureId: string) => void;
}
export declare function useCanvasEventListeners(handlers: CanvasEventListenerHandlers): void;
//# sourceMappingURL=use-canvas-event-listeners.d.ts.map