/*!
 * Copyright (c) Microsoft. All rights reserved.
 * Licensed under the MIT license. See LICENSE file in the project.
 */
import type { GraphManager, Step, Workflow } from '@data-wrangling-components/core';
import type { TableContainer } from '@essex/arquero';
import type ColumnTable from 'arquero/dist/types/table/column-table';
import type { ModalState } from '../hooks/index.js';
export declare function useOnDuplicateStep(graph: GraphManager, table?: ColumnTable, onSave?: (step: Step, output: string | undefined, ndex?: number) => void): (_step: Step) => void;
/**
 * A hook to get the onEditStep callback
 *
 * @param setStep - The step setter
 * @param setStepIndex - The step-index setter
 * @param showTableModal - A callback to show the table modas
 * @returns
 */
export declare function useOnEditStep(setStep: (step: Step) => void, setStepIndex: (index: number) => void, showTableModal: () => void): (step: Step, index: number) => void;
export declare function useOnCreateStep(index: number | undefined, dismissModal: () => void, save: (step: Step, output: string | undefined, index: number | undefined) => void, selectOutput: undefined | ((name: string) => void)): (step: Step, output: string | undefined) => void;
/**
 *
 * @param graph - The graph manager
 * @returns A callback to use when saving a step, either new or existing
 */
export declare function useOnSaveStep(graph: GraphManager): (step: Step, output: string | undefined, index: number | undefined) => void;
/**
 * A hook to manage state for showing the the step transformation modal
 *
 * @param setStep - A mutator for the selected step
 * @param setStepIndex - A mutator for the selected step indexw
 * @returns An object containing the isOpen state, and show/hide callbacks
 */
export declare function useTransformModalState(setStep: (step: Step | undefined) => void, setStepIndex: (index: number | undefined) => void): ModalState;
export declare function useEditorTarget(stepIndex: number | undefined): {
    editorTarget: string;
    addStepButtonId: string;
};
export declare function useOnDeleteStep(graph: GraphManager): (index: number) => void;
export declare function useDeleteConfirm(onDelete?: (args: any) => void): {
    isOpen: boolean;
    toggle: () => void;
    onClick: (args: any) => void;
    onConfirm: () => void;
};
export declare function useGraphOutputListener(graph: GraphManager, setOutput?: ((tables: TableContainer[]) => void) | undefined): void;
export declare function useGraphWorkflowListener(graph: GraphManager, setWorkflow?: (workflow: Workflow) => void): void;
