import React, { Component, type ErrorInfo } from 'react'; import { type ConnectedProps } from 'react-redux'; import { type PanelComponent, type PanelManager } from '@deephaven/dashboard'; import type GoldenLayout from '@deephaven/golden-layout'; import { type RowDataMap } from '@deephaven/jsapi-utils'; import type { dh as DhType } from '@deephaven/jsapi-types'; import { type Link, type LinkColumn, type LinkFilterMap, type LinkType, type LinkPointOptions } from './LinkerUtils'; import { type FilterColumnSourceId } from '../FilterEvents'; import { type LinkTargetProps } from './LinkerEvent'; interface StateProps { activeTool: string; dh: typeof DhType; isolatedLinkerPanelId?: string; links: Link[]; timeZone: string; } interface OwnProps { layout: GoldenLayout; panelManager: PanelManager; localDashboardId: string; } declare const connector: import("react-redux").InferableComponentEnhancerWithProps; setDashboardLinks: (id: string, links: Link[]) => unknown; addDashboardLinks: (id: string, newLinks: Link[]) => unknown; deleteDashboardLinks: (id: string, linkIds: string[]) => unknown; setDashboardIsolatedLinkerPanelId: (id: string, isolatedLinkerPanelId: string | string[] | undefined) => unknown; setDashboardColumnSelectionValidator: (id: string, columnSelectionValidator: import("./ColumnSelectionValidator").ColumnSelectionValidator | undefined) => unknown; }, OwnProps>; export type LinkerProps = OwnProps & StateProps & ConnectedProps; export type LinkerState = { linkInProgress?: Link & { endType?: LinkType; }; selectedIds: Set; isDraggingPanel: boolean; }; export declare class Linker extends Component { constructor(props: LinkerProps); componentDidMount(): void; componentDidUpdate(prevProps: LinkerProps): void; componentDidCatch(error: Error, info: ErrorInfo): void; componentWillUnmount(): void; private linkTargetPropMap; private removerFns; startListening(layout: GoldenLayout): void; stopListening(layout: GoldenLayout): void; reset(): void; handleCancel(): void; handleDone(): void; handleChartColumnSelect(panel: PanelComponent, column: LinkColumn): void; handleColumnsChanged(sourceId: FilterColumnSourceId, columns: readonly LinkColumn[] | null): void; handleGridColumnSelect(panel: PanelComponent, column: LinkColumn): void; handleLinkPointSelected(sourceId: string, column: LinkColumn, options: LinkPointOptions): void; /** * Track a column selection and build the link from it. * @param sourceId The ID of the source for the column selection * @param column The column that was selected * @param type The type of the link point * @param isAlwaysEndPoint True if the selection is always the end point, even if it's the first column selected. Defaults to false. * @param overrideIsolatedLinkerPanelId isolatedLinkerPanelId to use when method is called before prop changes propagate */ columnSelected(sourceId: string, column: LinkColumn, type: LinkType, isAlwaysEndPoint?: boolean, overrideIsolatedLinkerPanelId?: string | string[]): void; unsetFilterValueForLink(link: Link): void; /** * Set filters for a given panel ID * @param panelId ID of panel to set filters on * @param filterMap Map of column name to column type, text, and value */ setPanelFilterMap(panelId: string, filterMap: LinkFilterMap): void; addLinks(links: Link[]): void; deleteLinks(links: Link[], clearAll?: boolean): void; handleAllLinksDeleted(): void; handleLinkDeleted(linkId: string): void; handleTargetRegistered(sourceId: string, handlers: LinkTargetProps | null): void; handleUpdateValues(sourceId: string, dataMap: RowDataMap): void; handlePanelCloned(panel: PanelComponent, cloneConfig: { id: string; }): void; handlePanelDragging(componentId: string): void; handlePanelDropped(): void; handlePanelClosed(panelId: string): void; handleLinkSelected(linkId: string): void; handleLinksUpdated(newLinks: Link[]): void; handleLayoutStateChanged(): void; handleStateChange(): void; handleExited(): void; /** * Delete all links for a provided panel ID. Needs to be done whenever a panel is closed or unmounted. * @param panelId The panel ID to delete links for */ deleteLinksForPanelId(panelId: string): void; getCachedLinks: (links: Link[], linkInProgress: Link | undefined, isolateForPanelId: string | undefined) => Link[]; isOverlayShown(): boolean; updateSelectionValidators(): void; updateLinkInProgressType(type?: LinkType): void; isColumnSelectionValid(panelOrId: PanelComponent | string, tableColumn: LinkColumn | undefined, options: LinkPointOptions): boolean; render(): JSX.Element | null; } declare const ConnectedLinker: import("react-redux").ConnectedComponent & OwnProps & StateProps & { setActiveTool: import("@deephaven/redux").PayloadActionCreator; setDashboardLinks: (id: string, links: Link[]) => unknown; addDashboardLinks: (id: string, newLinks: Link[]) => unknown; deleteDashboardLinks: (id: string, linkIds: string[]) => unknown; setDashboardIsolatedLinkerPanelId: (id: string, isolatedLinkerPanelId: string | string[] | undefined) => unknown; setDashboardColumnSelectionValidator: (id: string, columnSelectionValidator: import("./ColumnSelectionValidator").ColumnSelectionValidator | undefined) => unknown; }, "links" | "setActiveTool" | "setDashboardIsolatedLinkerPanelId" | "dh" | "timeZone" | "activeTool" | "isolatedLinkerPanelId" | "setDashboardLinks" | "addDashboardLinks" | "deleteDashboardLinks" | "setDashboardColumnSelectionValidator"> & OwnProps>; export default ConnectedLinker; //# sourceMappingURL=Linker.d.ts.map