/**
 * Debug Marker Service
 *
 * Manages debug markers, sessions, and notes for dev testing.
 *
 * @since v1.33.2
 */
import type { CreateMarkerOptions, DebugMarker, DebugMarkerStatus, DebugNote, DebugSession, DebugSeverity, DebugStore } from './debug-types.js';
/**
 * Debug marker service for managing markers and sessions
 */
export declare class DebugMarkerService {
    private store;
    private outputDir;
    private filePath;
    private saveTimeout;
    private static readonly SAVE_DEBOUNCE_MS;
    constructor(outputDir?: string);
    /**
     * Start a new debug session
     */
    startSession(name?: string): DebugSession;
    /**
     * End the current session
     */
    endSession(): DebugSession | null;
    /**
     * Get the current session (creates one if none exists)
     */
    getCurrentSession(): DebugSession | null;
    /**
     * Get or create current session
     */
    ensureSession(): DebugSession;
    /**
     * Get a session by ID
     */
    getSession(id: string): DebugSession | null;
    /**
     * Get all sessions
     */
    getAllSessions(): DebugSession[];
    /**
     * Delete a session
     */
    deleteSession(id: string): boolean;
    /**
     * Create a new debug marker
     */
    createMarker(options: CreateMarkerOptions): DebugMarker;
    /**
     * Update a marker
     */
    updateMarker(markerId: string, updates: Partial<Omit<DebugMarker, 'id' | 'createdAt'>>): DebugMarker | null;
    /**
     * Update marker status
     */
    updateMarkerStatus(markerId: string, status: DebugMarkerStatus, resolution?: string): DebugMarker | null;
    /**
     * Delete a marker
     */
    deleteMarker(markerId: string): boolean;
    /**
     * Get a marker by ID
     */
    getMarker(markerId: string): DebugMarker | null;
    /**
     * Get all markers in current session
     */
    getMarkers(): DebugMarker[];
    /**
     * Get markers by severity
     */
    getMarkersBySeverity(severity: DebugSeverity): DebugMarker[];
    /**
     * Get markers by status
     */
    getMarkersByStatus(status: DebugMarkerStatus): DebugMarker[];
    /**
     * Get open markers
     */
    getOpenMarkers(): DebugMarker[];
    /**
     * Get marker count
     */
    getMarkerCount(): number;
    /**
     * Add a note to the current session
     */
    addNote(content: string, relatedMarkers?: string[]): DebugNote;
    /**
     * Update a note
     */
    updateNote(noteId: string, content: string): DebugNote | null;
    /**
     * Delete a note
     */
    deleteNote(noteId: string): boolean;
    /**
     * Get all notes in current session
     */
    getNotes(): DebugNote[];
    /**
     * Set the file path for persistence
     */
    setFilePath(path: string): void;
    /**
     * Get the output directory
     */
    getOutputDir(): string;
    /**
     * Schedule a debounced save (batches rapid mutations into single write)
     */
    private scheduleSave;
    /**
     * Save immediately (for critical operations like cleanup)
     */
    saveNow(): void;
    /**
     * Save the store to disk (with restricted file permissions)
     */
    save(): void;
    /**
     * Load from disk (with Zod schema validation)
     */
    load(): boolean;
    /**
     * Serialize the store
     */
    serialize(): string;
    /**
     * Load from serialized data
     */
    static fromSerialized(data: string, outputDir?: string): DebugMarkerService;
    /**
     * Get the raw store
     */
    getStore(): DebugStore;
    /**
     * Reset the service
     */
    reset(): void;
}
/**
 * Get the singleton debug marker service
 */
export declare function getDebugMarkerService(): DebugMarkerService;
/**
 * Reset the singleton
 */
export declare function resetDebugMarkerService(): void;
//# sourceMappingURL=debug-marker-service.d.ts.map