import { PeerConnectivityActions } from './peerConnectivity.constants'; export interface PeerConnectivityContext { canvasId?: string; fileId?: string; routeName?: string; routePath?: string; viewId?: string; viewType?: string; [key: string]: unknown; } export interface PeerConnectivityMetadata { correlationId: string; source: string; timestamp: number; extras?: Record; } export interface PeerConnectivityEventPayload = Record, TContext extends PeerConnectivityContext = PeerConnectivityContext> { version?: number; action: string; context?: TContext; data?: TData; metadata?: Partial; } export interface PeerConnectivityEvent = Record, TContext extends PeerConnectivityContext = PeerConnectivityContext> extends PeerConnectivityEventPayload { version: number; metadata: PeerConnectivityMetadata; } export type PeerConnectivityAction = (typeof PeerConnectivityActions)[keyof typeof PeerConnectivityActions] | string; export type PeerConnectivityEventHandler = Record, TContext extends PeerConnectivityContext = PeerConnectivityContext> = (event: PeerConnectivityEvent) => void; export interface PeerConnectivityDispatchOptions { /** * Guards if feature flag is enabled for the current organization. */ isFeatureEnabled?: boolean; }