import type { NodeMeta, NodeRow, NodeStatus, SubscriptionRef } from './types.js'; import type { Scope } from '../../types.js'; export interface CanvasSource { getNode(nodeId: string): Promise; getRow(nodeId: string): Promise; listNodes(filter?: { status?: NodeStatus | NodeStatus[]; }): Promise; subscriptionsOf(subscriber: string): Promise; subscribersOf(publisher: string): Promise; view(root: string): Promise; ticketCountsForView(root: string): Promise>; hasActiveLiveSubscription(nodeId: string): Promise; } export declare class LocalCanvasSource implements CanvasSource { getNode(nodeId: string): Promise; getRow(nodeId: string): Promise; listNodes(filter?: { status?: NodeStatus | NodeStatus[]; }): Promise; subscriptionsOf(subscriber: string): Promise; subscribersOf(publisher: string): Promise; view(root: string): Promise; ticketCountsForView(root: string): Promise>; hasActiveLiveSubscription(nodeId: string): Promise; } export declare const localCanvasSource: CanvasSource; /** The active read source for a command: an explicit `--canvas ` wins, * else the durable `crtr canvas use` selection (`ScopeState.activeCanvas`), * else local — byte-for-byte the same `localCanvasSource` singleton so a * caller with neither set sees zero behavior change. */ export declare function resolveCanvasSource(opts?: { canvasName?: string; scope?: Scope; }): CanvasSource;