/** * Next & Blocked Commands Types * * Type definitions for the next and blocked commands. */ import { TicketStatus, TicketPriority } from './tickets.types.js'; /** * Next command options from Commander */ export interface NextOptions { /** Output as JSON */ json?: boolean; /** Output as TOON format */ toon?: boolean; /** Show only title and ID */ brief?: boolean; } /** * Blocked command options from Commander */ export interface BlockedOptions { /** Output as JSON */ json?: boolean; /** Output as TOON format */ toon?: boolean; } /** * Dependency information for a ticket */ export interface TicketDependency { /** Dependency ticket ID */ id: string; /** Dependency ticket number */ ticketNumber: number; /** Dependency ticket title */ title: string; /** Dependency ticket status */ status: TicketStatus; } /** * Full ticket details for next command */ export interface NextTicket { /** Ticket ID */ id: string; /** Sequential ticket number */ ticketNumber: number; /** Ticket title */ title: string; /** Ticket description */ description?: string; /** Ticket priority */ priority: TicketPriority; /** Ticket complexity */ complexity?: TicketComplexity; /** Estimated hours to complete */ estimatedHours?: number; /** List of acceptance criteria */ acceptanceCriteria?: string[]; /** Dependencies (all should be satisfied) */ dependencies?: TicketDependency[]; /** Epic ID this ticket belongs to */ epicId?: string; /** Epic title */ epicTitle?: string; } /** * Ticket complexity levels */ export type TicketComplexity = 'trivial' | 'low' | 'medium' | 'high' | 'complex'; /** * All valid complexity levels */ export declare const VALID_COMPLEXITIES: TicketComplexity[]; /** * Blocker ticket information */ export interface BlockerTicket { /** Blocker ticket ID */ id: string; /** Blocker ticket number */ ticketNumber: number; /** Blocker ticket title */ title: string; /** Blocker ticket status */ status: TicketStatus; } /** * Blocked ticket with its blockers */ export interface BlockedTicket { /** Blocked ticket ID */ id: string; /** Blocked ticket number */ ticketNumber: number; /** Blocked ticket title */ title: string; /** List of blocking tickets */ blockedBy: BlockerTicket[]; /** Reason for block (if manually set) */ blockReason?: string; } /** * API response for get_ticket */ export interface GetTicketApiResponse { /** Ticket ID */ id: string; /** Ticket number */ ticketNumber: number; /** Ticket title */ title: string; /** Ticket description */ description?: string; /** Ticket priority */ priority: TicketPriority; /** Ticket status */ status: TicketStatus; /** Ticket complexity */ complexity?: TicketComplexity; /** Estimated hours */ estimatedHours?: number; /** Acceptance criteria */ acceptanceCriteria?: string[]; /** Blocking ticket IDs */ blockedBy?: string[]; /** Block reason */ blockReason?: string; /** Epic ID */ epicId?: string; } /** * Complexity display colors */ export declare const COMPLEXITY_COLORS: Record; /** * Ticket card display width */ export declare const TICKET_CARD_WIDTH = 65; /** * Format ticket number with prefix * * @param num Ticket number * @returns Formatted ticket number (e.g., "TKT-042") */ export declare function formatTicketId(num: number): string; /** * Wrap text to specified width * * @param text Text to wrap * @param width Maximum line width * @returns Array of wrapped lines */ export declare function wrapText(text: string, width: number): string[]; /** * Truncate text with ellipsis * * @param text Text to truncate * @param maxLength Maximum length * @returns Truncated text */ export declare function truncateText(text: string, maxLength: number): string; /** * Check if all dependencies are satisfied (done) * * @param dependencies Array of dependencies * @returns True if all dependencies are done or no dependencies */ export declare function areDependenciesSatisfied(dependencies?: TicketDependency[]): boolean; /** * Count unsatisfied dependencies * * @param dependencies Array of dependencies * @returns Number of dependencies not done */ export declare function countUnsatisfiedDependencies(dependencies?: TicketDependency[]): number; /** * Format dependencies status for display * * @param dependencies Array of dependencies * @returns Status string (e.g., "all satisfied", "2 pending") */ export declare function formatDependenciesStatus(dependencies?: TicketDependency[]): string; /** * Build tree prefix for blocker display * * @param isLast Whether this is the last item * @returns Tree prefix string */ export declare function getTreePrefix(isLast: boolean): string; //# sourceMappingURL=next.types.d.ts.map