@wuwei-labs/srsly
Version:
TypeScript SDK for SRSLY
65 lines • 1.81 kB
TypeScript
/**
* @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