/**
 * useSetupWizard Hook
 *
 * Manages the state machine for the setup wizard.
 *
 * @since v1.43.1
 */
import type { ServerJarType } from '../../../core/server-jar/index.js';
import type { Plugin } from '../../../core/types/index.js';
import { type FeatureSettings, type NotificationSettings, type PanelSettings, type SetupConfig, type SetupWizardState, type WizardStep } from './wizard-types.js';
export interface UseSetupWizardOptions {
    /** Initial state (for persistence across remounts) */
    initialState?: Partial<SetupWizardState>;
    /** Called when wizard state changes (for persistence) */
    onStateChange?: (state: SetupWizardState) => void;
    /** Function to scan a directory for plugins */
    scanPlugins?: (path: string) => Promise<Plugin[]>;
    /** Called when setup is complete */
    onComplete: (config: SetupConfig) => void;
}
export interface SetupWizardHookResult {
    step: WizardStep;
    currentStepIndex: number;
    prodPath: string;
    setProdPath: (path: string) => void;
    testPath: string;
    setTestPath: (path: string) => void;
    mcVersion: string;
    setMcVersion: (version: string) => void;
    mcVersions: string[];
    versionsLoading: boolean;
    serverType: ServerJarType;
    setServerType: (type: ServerJarType) => void;
    serverJarDefault: 'prod' | 'test';
    setServerJarDefault: (value: 'prod' | 'test') => void;
    features: FeatureSettings;
    setFeatures: (settings: FeatureSettings) => void;
    panel: PanelSettings;
    setPanel: (settings: PanelSettings) => void;
    notifications: NotificationSettings;
    setNotifications: (settings: NotificationSettings) => void;
    scannedProdPlugins: Plugin[];
    scannedTestPlugins: Plugin[];
    scanError: string | null;
    goToStep: (step: WizardStep) => void;
    goToNextStep: () => void;
    goToPreviousStep: () => void;
    completeWizard: () => void;
}
/**
 * Hook to manage setup wizard state machine
 */
export declare function useSetupWizard({ initialState, onStateChange, scanPlugins, onComplete }: UseSetupWizardOptions): SetupWizardHookResult;
//# sourceMappingURL=useSetupWizard.d.ts.map