/**
 * Roadmap operations for PMO.
 * Roadmaps are curated collections of projects for documentation/visualization.
 *
 * This module uses Drizzle ORM for type-safe database queries.
 */
import { Roadmap, RoadmapProject, RoadmapFilter, Project } from '../types.js';
import { StorageContext } from './types.js';
export declare class RoadmapStorage {
    private ctx;
    constructor(ctx: StorageContext);
    /**
     * Create a new roadmap.
     */
    createRoadmap(roadmap: Partial<Roadmap> & {
        name: string;
    }): Promise<Roadmap>;
    /**
     * Get a roadmap by ID.
     */
    getRoadmap(id: string): Promise<Roadmap | null>;
    /**
     * List roadmaps with optional filters.
     */
    listRoadmaps(filter?: RoadmapFilter): Promise<Roadmap[]>;
    /**
     * Update a roadmap.
     */
    updateRoadmap(id: string, changes: Partial<Roadmap>): Promise<Roadmap>;
    /**
     * Delete a roadmap.
     */
    deleteRoadmap(id: string): Promise<void>;
    /**
     * Get the default roadmap.
     */
    getDefaultRoadmap(): Promise<Roadmap | null>;
    /**
     * Set a roadmap as the default.
     */
    setDefaultRoadmap(id: string): Promise<Roadmap>;
    /**
     * List projects in a roadmap, ordered by position.
     */
    listRoadmapProjects(roadmapId: string): Promise<Project[]>;
    /**
     * Add a project to a roadmap.
     */
    addProjectToRoadmap(roadmapId: string, projectId: string, position?: number): Promise<RoadmapProject>;
    /**
     * Remove a project from a roadmap.
     */
    removeProjectFromRoadmap(roadmapId: string, projectId: string): Promise<void>;
    /**
     * Reorder a project within a roadmap.
     */
    reorderRoadmapProject(roadmapId: string, projectId: string, newPosition: number): Promise<RoadmapProject>;
    /**
     * Get all roadmaps that contain a project.
     */
    getRoadmapsForProject(projectId: string): Promise<Roadmap[]>;
    private rowToRoadmap;
    private rowToProject;
}
