import { Services, Ticket } from './types.js';
/**
 * Common utilities for flow commands to reduce code duplication
 */
export type TicketStatus = 'todo' | 'doing' | 'done';
export type FlowPhase = 'planning' | 'test' | 'feat' | 'refactor';
/**
 * Generate ticket file location based on status and ticket info
 * For local tickets: returns file path
 * For GitHub tickets: returns URL
 */
export declare function getTicketLocation(ticketId: string, title: string, status?: TicketStatus, ticket?: Ticket): string;
/**
 * Generate git commit message for flow phases
 */
export declare function generateCommitMessage(phase: FlowPhase, ticketId: string, title: string): string;
/**
 * Generate formatted ticket location header for flow commands
 */
export declare function formatTicketHeader(ticketId: string, title: string, phase: string, ticket?: Ticket, services?: Services): string;
/**
 * Generate commit action for Next Action sections
 */
export declare function formatCommitAction(phase: FlowPhase, ticketId: string, title: string): string;
/**
 * Get a ticket by ID or throw TicketNotFoundError
 */
export declare function getTicketOrThrow(ticketId: string, services: Services): Promise<Ticket>;
/**
 * Validate that a ticket is not completed
 */
export declare function validateNotCompleted(ticket: Ticket): void;
/**
 * Validate that a ticket is in progress
 */
export declare function validateInProgress(ticket: Ticket): void;
/**
 * Validate that a ticket is in progress and not completed
 */
export declare function validateTicketForFlow(ticket: Ticket): void;
