import { Component, type ReactElement } from 'react'; import { type DropResult } from '@hello-pangea/dnd'; import { type EventT } from '@deephaven/utils'; import './CustomColumnBuilder.scss'; import IrisGridModel from '../IrisGridModel'; export type CustomColumnKey = 'eventKey' | 'name' | 'formula'; type Input = { eventKey: string; name: string; formula: string; }; export interface CustomColumnBuilderProps { model: IrisGridModel; customColumns: readonly string[]; onSave: (columns: readonly string[]) => void; onCancel: () => void; } interface CustomColumnBuilderState { inputs: readonly Input[]; isCustomColumnApplying: boolean; errorMessage: ReactElement | null; hasRequestFailed: boolean; isSuccessShowing: boolean; } declare class CustomColumnBuilder extends Component { static SUCCESS_SHOW_DURATION: number; static makeCustomColumnInputEventKey(): string; static createCustomColumnInput(): Input; constructor(props: CustomColumnBuilderProps); componentDidMount(): void; componentWillUnmount(): void; container: HTMLDivElement | null; successButtonTimer: ReturnType | null; getInput: (inputs: readonly Input[], key: string) => Input | undefined; getInputIndex: (inputs: readonly Input[], key: string) => number; resetErrorMessage(): void; startListening(): void; stopListening(): void; parseCustomColumns(customColumns: readonly string[]): void; handleAddColumnClick(): void; handleDeleteColumn(eventKey: string): void; handleInputChange(eventKey: string, type: CustomColumnKey, value: string): void; handleCustomColumnUpdated(): void; handleRequestFailed(event: EventT): void; handleDragEnd(result: DropResult): void; handleEditorTabNavigation(focusEditorIndex: number, shiftKey: boolean): void; handleSaveClick(): void; resetRequestFailed(): void; renderInputs(): ReactElement[]; renderSaveButton(): ReactElement; render(): JSX.Element; } export default CustomColumnBuilder; //# sourceMappingURL=CustomColumnBuilder.d.ts.map