import { InferFieldsAtStep, InferStateAtStep, WizardStep } from './defineWizard';
import { CapitalizeWords, Prettify } from './utils';
export type WizardPossibleStates<Steps extends WizardStep<any, any>[]> = {
    [Index in keyof Steps]: Prettify<{
        readonly stepId: Steps[Index]['id'];
    } & InferStateAtStep<Steps, Steps[Index]['id']>>;
}[number];
export type DefineStoreType<Steps extends WizardStep<any, any, string>[]> = {
    wizardState: WizardPossibleStates<Steps>;
    steps: Steps;
    setWizardState: (state: WizardPossibleStates<Steps>) => void;
    goToPreviousStep: () => void;
} & {
    [Step in Steps[number] as `submit${CapitalizeWords<Step['id']>}`]: (value: InferFieldsAtStep<Steps, Step['id']>) => void;
};
export declare function createWizardStore<Steps extends WizardStep<any, any, any>[]>(wizard: Steps): import("zustand").UseBoundStore<import("zustand").StoreApi<DefineStoreType<Steps>>>;
