/**
 * Navigation State Machine
 *
 * XState v5 machine for TUI navigation and screen management.
 * Provides exhaustive type checking and prevents impossible states.
 */
/**
 * Data collected during add flow wizard.
 * Uses explicit undefined values instead of empty object for type safety.
 */
export interface WizardData {
    readonly path: string | undefined;
    readonly name: string | undefined;
}
/**
 * Action requiring confirmation.
 */
export interface ConfirmAction {
    readonly type: "remove";
    readonly flowId: string;
    readonly flowName: string;
}
/**
 * Navigation machine context.
 */
export interface NavigationContext {
    /** Currently selected flow ID */
    readonly selectedFlowId: string | undefined;
    /** Wizard data for add flow */
    readonly wizardData: WizardData;
    /** Action awaiting confirmation */
    readonly confirmAction: ConfirmAction | undefined;
}
/**
 * Navigation machine events.
 */
export type NavigationEvent = {
    readonly type: "SELECT_FLOW";
    readonly flowId: string;
} | {
    readonly type: "OPEN_ADD_WIZARD";
} | {
    readonly type: "CONFIRM_REMOVE";
    readonly flowId: string;
    readonly flowName: string;
} | {
    readonly type: "EXIT";
} | {
    readonly type: "NEXT";
} | {
    readonly type: "BACK";
} | {
    readonly type: "CANCEL";
} | {
    readonly type: "CONFIRM";
} | {
    readonly type: "COMPLETE";
} | {
    readonly type: "SET_PATH";
    readonly path: string;
} | {
    readonly type: "SET_NAME";
    readonly name: string;
};
/**
 * Navigation state machine for TUI screens.
 *
 * States:
 * - dashboard: Main flow list view
 * - addWizard: Multi-step add flow wizard
 *   - pathStep: Enter repository path
 *   - nameStep: Enter optional display name
 *   - confirmStep: Review and confirm
 * - confirmAction: Confirm destructive action (remove)
 * - exiting: Final state (app exits)
 */
export declare const navigationMachine: import("xstate").StateMachine<NavigationContext, NavigationEvent, Record<string, import("xstate").AnyActorRef>, import("xstate").ProvidedActor, import("xstate").ParameterizedObject, import("xstate").ParameterizedObject, string, import("xstate").StateValue, string, unknown, import("xstate").NonReducibleUnknown, import("xstate").EventObject, import("xstate").MetaObject, any>;
/**
 * Type for the navigation machine.
 */
export type NavigationMachine = typeof navigationMachine;
//# sourceMappingURL=navigation.d.ts.map