import { type Activity, type ActivityStatus, type Id, type Milestone, type MilestoneStatus, type Ordered, type Phase, type User } from './types'; import { type DraggableChangeEvent } from './types/utils'; /** * Formats minutes into a human-readable time format * @param minutes - Time in minutes * @param unit - string ('hours' or 'days') * @returns Formatted string like "30m", "1h 15m", "4h", "1d 2h", etc. */ export declare function formatTimeSpent(minutes: number, unit?: string): string; /** * Gets the unit suffix for display ('h' for hours, 'd' for days) * @param unit - string ('hours' or 'days') * @returns Unit abbreviation */ export declare function getUnitSuffix(unit?: string): string; export declare function sumPhaseActivitiesAmount(milestones: Milestone[]): number; export declare function sumTemplateMilestonesAmount(phases: Phase[]): number; export declare function sumTemplateActivitiesAmount(phases: Phase[]): number; export declare function getInitialLetters(name: string): string; export declare function computeNewRank(event: DraggableChangeEvent, list: T[]): string | undefined; export declare function generateRank(items: T[], index: number): string; /** * Generates a rank for an item at the BEGINNING of a list. * Uses genPrev() on the first item to create a rank before it. */ export declare function generateRankAtBeginning(items: T[]): string; /** * Generates ranks for multiple items to be appended at the END of a list. * Uses genNext() chain starting after the last item. * Returns an array of ranks in the order they should be inserted. */ export declare function generateRanksAtEnd(items: T[], count: number): string[]; export declare function formatDate(value: string | null | undefined, pattern?: string): string; export declare function isActivityClosed(activity: Activity, closedStatus: ActivityStatus): boolean; export declare function isFullyDone(milestone: Milestone, closedStatus: ActivityStatus): boolean; export declare function milestoneWithStatus(milestone: Milestone, closedStatus: ActivityStatus): Milestone & { status: MilestoneStatus; }; export declare const getUserName: (user: User | undefined | null) => string; export declare function lightenColor(color: string, alpha?: number): string; /** * Generate a mention name from a user object. * Converts "First Last" to "First_Last". */ export declare function getMentionName(user: User): string; /** * Extract unique mentioned user IDs from a Markdown/plain-text message. */ export declare function extractMentionedUserIds(message: string, users: User[]): Id[];