/*!
 * Copyright (c) Microsoft. All rights reserved.
 * Licensed under the MIT license. See LICENSE file in the project.
 */
import type { TableContainer } from '@datashaper/tables';
import type { Step } from '@datashaper/workflow';
import { Workflow } from '@datashaper/workflow';
import type ColumnTable from 'arquero/dist/types/table/column-table';
import type { ModalState } from '../hooks/index.js';
export declare function useOnDuplicateStep(workflow: Workflow, table?: ColumnTable, onSave?: (step: Step, output: string | undefined, index?: 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 modal
 * @returns
 */
export declare function useOnEditStep(setStep: (step: Step) => void, setStepIndex: (index: number) => void, showTableModal: () => void): (step: Step, index: number) => void;
export declare function useOnCreateStep(save: (step: Step, output: string | undefined, index: number | undefined) => void, selectOutput: undefined | ((name: string) => void), dismissModal?: () => void): (step: Step, output: string | undefined, index: number | undefined) => void;
/**
 *
 * @param workflow - The workflow
 * @returns A callback to use when saving a step, either new or existing
 */
export declare function useOnSaveStep(workflow: Workflow): (step: Step, output: string | undefined, index: number | undefined) => void;
/**
 *
 * @param workflow - The workflow
 * @returns A callback to use when saving a step, either new or existing
 */
export declare function useOnUpdateStep(workflow: Workflow): (step: Step, output: string | undefined, index: number | undefined) => void;
export declare function useWorkflowOutputListener(workflow: Workflow, setOutput?: ((tables: TableContainer[]) => void) | undefined): void;
export declare function useOnDeleteStep(workflow: Workflow): (index: number) => void;
export declare function useWorkflowListener(workflow: Workflow, setWorkflow?: (workflow: Workflow) => void): 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;
