import { TUseValues } from '../../AHooks/useValues';
interface IStepRendererProps<T> {
    /**
     * step : T
     *
     * Description : step of AStepper
     */
    step: T;
    /**
     * stepIdx : number
     *
     * Description : stepIdx of AStepper
     */
    stepIdx: number;
}
export interface IAStepperProps<T> {
    /**
     * ContentRenderer? : (props: IStepRendererProps<T>) => React.ReactNode = DefaultRenderer
     *
     * Description : ContentRenderer of AStepper
     */
    ContentRenderer?: (props: IStepRendererProps<T>) => React.ReactNode;
    /**
     * StepRenderer? : (props: IStepRendererProps<T>) => React.ReactNode = DefaultRenderer
     *
     * Description : StepRenderer of AStepper
     */
    StepRenderer?: (props: IStepRendererProps<T>) => React.ReactNode;
    /**
     * steps : T[]
     *
     * Description : steps of AStepper. must have at least one step.
     */
    steps: T[];
    /**
     * useSelect? : TUseValues<T>
     *
     * Description : useStep of AStepper
     */
    useSelect?: TUseValues<T>;
}
/**
 * AComponent : AStepper
 *
 * Description : AStepper is a stepper component that can select a step. all steps are rendered even if they are not selected.
 *
 * Basic Usage :
 *
 *     const steps = ['Step1', 'Step2', 'Step3'];
 *     const StepRenderer = ({step, stepIdx}) => 'This is step' + stepIdx;
 *     const ContentRenderer = ({step, stepIdx}) => 'This is content' + stepIdx;
 *
 *     if (case 1)
 *       <AStepper steps={steps}/>
 *
 *     if (case 2)
 *       <AStepper steps={steps}
 *         StepRenderer={StepRenderer}/>
 *
 *     if (case 3)
 *       <AStepper steps={steps}
 *         ContentRenderer={ContentRenderer}/>
 *
 *     if (case 4)
 *       <AStepper steps={steps}
 *         StepRenderer={StepRenderer}
 *         ContentRenderer={ContentRenderer}/>
 *
 */
export declare const AStepper: <T>(props: IAStepperProps<T>) => import("react/jsx-runtime").JSX.Element;
export {};
