/**
 * Jump List Types
 *
 * Types for vim-style jump list navigation.
 *
 * @since v1.58.4
 */
import type { Tier } from '../../core/types/auth.js';
/**
 * A location in the jump list
 */
export interface JumpLocation {
    /** Unique identifier */
    id: string;
    /** View/tab name */
    view: string;
    /** Item index within the view */
    index: number;
    /** Item identifier (plugin ID, server ID, etc.) */
    itemId?: string;
    /** Human-readable label */
    label: string;
    /** Timestamp when visited */
    timestamp: number;
    /** Additional context */
    context?: Record<string, unknown>;
}
/**
 * Jump list state
 */
export interface JumpListState {
    /** All jump locations */
    locations: JumpLocation[];
    /** Current position in the list (-1 = at current location) */
    position: number;
    /** Maximum history size */
    maxSize: number;
}
/**
 * Jump list configuration
 */
export interface JumpListConfig {
    /** Whether jump list is enabled */
    enabled: boolean;
    /** User's tier for feature gating */
    userTier: Tier;
    /** Maximum locations to keep */
    maxSize: number;
    /** Minimum time between jumps to record (ms) */
    debounceMs: number;
    /** Whether to persist across sessions */
    persist: boolean;
}
/**
 * Default jump list configuration
 */
export declare const DEFAULT_JUMP_LIST_CONFIG: JumpListConfig;
/**
 * Create initial jump list state
 */
export declare function createInitialJumpListState(maxSize?: number): JumpListState;
/**
 * Create a jump location
 */
export declare function createJumpLocation(view: string, index: number, label: string, itemId?: string, context?: Record<string, unknown>): JumpLocation;
/**
 * Format jump location for display
 */
export declare function formatJumpLocation(location: JumpLocation): string;
//# sourceMappingURL=jump-list-types.d.ts.map