/**
 * Dev Types
 *
 * Consolidated type definitions for the dev CLI wrapper.
 *
 * @since v1.42.0
 */
import type { Tier } from '../../core/types/auth.js';
/**
 * Dev CLI application phases
 */
export type DevPhase = 'start-screen' | 'transitioning' | 'running' | 'paused';
/**
 * Dev action types for recording
 */
export type DevActionType = 'keypress' | 'navigation' | 'command' | 'workflow-start' | 'workflow-complete' | 'workflow-error' | 'tier-change' | 'state-change' | 'marker-created' | 'note-added';
/**
 * Recorded dev action
 */
export interface DevAction {
    type: DevActionType;
    timestamp: number;
    data: Record<string, unknown>;
}
/**
 * Dev session configuration (set on start screen)
 */
export interface DevSessionConfig {
    tier: Tier;
    sessionName: string;
    autoRecord: boolean;
}
/**
 * Dev context state
 */
export interface DevContextState {
    /** Current phase of the dev CLI */
    phase: DevPhase;
    /** Session configuration */
    config: DevSessionConfig;
    /** Whether currently recording */
    isRecording: boolean;
    /** Whether operations are paused (for marker creation) */
    isPaused: boolean;
    /** Pause reason (shown to user) */
    pauseReason: string | null;
    /** Number of markers in current session */
    markerCount: number;
    /** Number of recorded actions */
    actionCount: number;
}
/**
 * Dev context actions
 */
export interface DevContextActions {
    /** Start the Pluginator session (goes to transition first) */
    startSession: (config: DevSessionConfig) => void;
    /** Complete transition and start running */
    completeTransition: () => void;
    /** Return to start screen */
    returnToStart: () => void;
    /** Change tier override */
    setTier: (tier: Tier) => void;
    /** Toggle recording */
    toggleRecording: () => void;
    /** Start recording */
    startRecording: () => void;
    /** Stop recording */
    stopRecording: () => void;
    /** Pause operations (for marker creation) */
    pauseOperations: (reason: string) => void;
    /** Resume operations */
    resumeOperations: () => void;
    /** Record an action from the main app */
    recordAction: (action: DevAction) => void;
    /** Increment marker count */
    incrementMarkerCount: () => void;
    /** Update session name */
    setSessionName: (name: string) => void;
}
/**
 * Full dev context value
 */
export interface DevContextValue extends DevContextState, DevContextActions {
}
/**
 * Props passed to main App when in dev mode
 */
export interface DevModeProps {
    /** Dev mode is active */
    devMode: true;
    /** Tier override from dev tools */
    tierOverride: Tier;
    /** Callback when user performs an action (for recording) */
    onAction?: (action: DevAction) => void;
    /** Whether operations should be paused */
    isPaused: boolean;
    /** Pause reason to display */
    pauseReason: string | null;
}
/**
 * Default dev session config
 */
export declare const DEFAULT_DEV_SESSION_CONFIG: DevSessionConfig;
/**
 * Default dev context state
 */
export declare const DEFAULT_DEV_CONTEXT_STATE: DevContextState;
/**
 * Generate a default session name with timestamp
 */
export declare function generateDefaultSessionName(): string;
//# sourceMappingURL=dev-types.d.ts.map