/**
 * Project operations.
 * Board columns are now derived from workflow statuses (single source of truth).
 */
import { Board, BoardConfig, Project, ProjectFilter } from '../types.js';
import { StorageContext } from './types.js';
export declare class ProjectStorage {
    private ctx;
    constructor(ctx: StorageContext);
    /**
     * Initialize a project with a workflow.
     * @deprecated Use createProject with a template instead.
     */
    init(projectId: string, config: BoardConfig): Promise<Board>;
    /**
     * Get the project board.
     * Columns are derived from the project's workflow statuses.
     * Tickets are sorted by priority (P0 first) then created_at (oldest first).
     */
    getBoard(projectId: string): Promise<Board>;
    /**
     * Get the board as markdown.
     */
    getBoardMarkdown(projectId: string): Promise<string>;
    /**
     * Create a new project.
     * Assigns a workflow based on the workflow ID (defaults to 'default' workflow).
     */
    createProject(project: {
        id?: string;
        name: string;
        template?: string;
        description?: string;
    }): Promise<Board>;
    /**
     * Get project board by ID.
     */
    getProjectBoard(projectId: string): Promise<Board | null>;
    /**
     * Get tickets for a status (column).
     * Tickets are sorted by priority (P0 first) then created_at (oldest first).
     */
    private getTicketsForStatus;
    /**
     * List project summaries.
     */
    listProjectSummaries(): Promise<Array<{
        id: string;
        name: string;
        template: string | null;
        description: string | null;
        ticketCount: number;
    }>>;
    /**
     * Delete a project.
     */
    deleteProject(projectId: string): Promise<void>;
    /**
     * Get a project by ID.
     */
    getProject(id: string): Promise<Project | null>;
    /**
     * Update a project.
     */
    updateProject(id: string, changes: Partial<Project>): Promise<Project>;
    /**
     * List projects with optional filter.
     */
    listProjects(filter?: ProjectFilter): Promise<Project[]>;
    /**
     * Archive a project.
     */
    archiveProject(id: string): Promise<Project>;
    /**
     * Unarchive a project.
     */
    unarchiveProject(id: string): Promise<Project>;
    private rowToProject;
}
