UNPKG

@wuwei-labs/srsly

Version:
65 lines 1.81 kB
/** * @purpose Duration parameter conversion utilities * * Converts user-friendly duration formats to seconds for use with Solana programs. */ /** * Duration parameter type * * Accepts either a plain number (seconds) or an object with time units. */ export type DurationParam = number | { seconds?: number; } | { minutes?: number; } | { hours?: number; } | { days?: number; } | { weeks?: number; } | { months?: number; }; /** * Convert duration parameter to seconds * * @param duration - Duration in any supported format * @returns Duration in seconds * @throws Error if duration is invalid or negative * * @example * ```typescript * convertDuration(3600) // 3600 seconds * convertDuration({ hours: 1 }) // 3600 seconds * convertDuration({ days: 7 }) // 604800 seconds * convertDuration({ weeks: 2 }) // 1209600 seconds * ``` */ export declare function convertDuration(duration: DurationParam): number; /** * Validate duration limits * * Ensures duration is within reasonable bounds for rental contracts. * * @param durationSeconds - Duration in seconds * @param min - Minimum allowed duration (default: 1 hour) * @param max - Maximum allowed duration (default: 1 year) * @throws Error if duration is out of bounds */ export declare function validateDuration(durationSeconds: number, min?: number, max?: number): void; /** * Format duration in seconds to human-readable string * * @param seconds - Duration in seconds * @returns Human-readable duration string * * @example * ```typescript * formatDuration(3600) // "1 hour" * formatDuration(86400) // "1 day" * formatDuration(7200) // "2 hours" * ``` */ export declare function formatDuration(seconds: number): string; //# sourceMappingURL=duration.d.ts.map