/**
 * Dependency operations for tickets, specs, and epics.
 */
import { EpicDependency, EpicDependencyType, SpecDependency, SpecDependencyType, Ticket, TicketDependency, TicketDependencyType } from '../types.js';
import { StorageContext } from './types.js';
export declare class DependencyStorage {
    private ctx;
    constructor(ctx: StorageContext);
    /**
     * Create a dependency between two tickets.
     */
    createTicketDependency(ticketId: string, dependsOnTicketId: string, dependencyType?: TicketDependencyType): Promise<TicketDependency>;
    /**
     * Delete a ticket dependency.
     */
    deleteTicketDependency(ticketId: string, dependsOnTicketId: string, dependencyType?: TicketDependencyType): Promise<void>;
    /**
     * List dependencies for a ticket.
     * For relates_to dependencies, also returns reverse relationships (symmetric).
     */
    listTicketDependencies(ticketId: string): Promise<TicketDependency[]>;
    /**
     * Get tickets that this ticket depends on (blockers).
     */
    getTicketBlockers(ticketId: string): Promise<Ticket[]>;
    /**
     * Get tickets that depend on this ticket (blocking).
     */
    getTicketsBlockedBy(ticketId: string): Promise<Ticket[]>;
    /**
     * Check if a ticket is blocked by incomplete dependencies.
     */
    isTicketBlocked(ticketId: string): Promise<boolean>;
    /**
     * Create a dependency between two specs.
     */
    createSpecDependency(specId: string, dependsOnSpecId: string, dependencyType?: SpecDependencyType): Promise<SpecDependency>;
    /**
     * Delete a spec dependency.
     */
    deleteSpecDependency(specId: string, dependsOnSpecId: string, dependencyType?: SpecDependencyType): Promise<void>;
    /**
     * List dependencies for a spec.
     */
    listSpecDependencies(specId: string): Promise<SpecDependency[]>;
    /**
     * Create a dependency between two epics.
     */
    createEpicDependency(epicId: string, dependsOnEpicId: string, dependencyType?: EpicDependencyType): Promise<EpicDependency>;
    /**
     * Delete an epic dependency.
     */
    deleteEpicDependency(epicId: string, dependsOnEpicId: string, dependencyType?: EpicDependencyType): Promise<void>;
    /**
     * List dependencies for an epic.
     */
    listEpicDependencies(epicId: string): Promise<EpicDependency[]>;
    /**
     * Check if an epic is blocked by incomplete dependencies.
     */
    isEpicBlocked(epicId: string): Promise<boolean>;
}
