import type { ReactElement, ReactNode } from "react";
import type { ProgressTrackerProps } from "../ProgressTracker";
export interface DialogStep {
    content: ReactNode;
    progressTracker?: ReactElement<ProgressTrackerProps>;
    /** When provided, overrides the dialog-level sidePanel for this step. */
    sidePanel?: ReactElement;
    onBeforeNext?: () => boolean | Promise<boolean>;
    onBeforeBack?: () => boolean | Promise<boolean>;
    onEnter?: () => void | Promise<void>;
}
export interface MultiStepDialogOptions {
    steps: DialogStep[];
    onComplete?: () => void;
    completeButtonLabel?: string;
    backButtonDisabled?: boolean;
    nextButtonDisabled?: boolean;
}
export type DialogStepWithoutSidePanel = Omit<DialogStep, "sidePanel"> & {
    sidePanel?: never;
};
export interface MultiStepDialogOptionsWithoutSidePanel extends Omit<MultiStepDialogOptions, "steps"> {
    steps: DialogStepWithoutSidePanel[];
}
export interface SingleStepNeverProps {
    primaryAction?: never;
    secondaryAction?: never;
    children?: never;
    progressTracker?: never;
}
export interface MultiStepNeverProps {
    steps?: never;
    onComplete?: never;
    completeButtonLabel?: never;
    backButtonDisabled?: never;
    nextButtonDisabled?: never;
}
