import type { ProvisioningAction } from './provisioning.js'; import type { ProvisioningDeployment } from './provisioning-detail.js'; export type ProvisioningListRow = Pick & { canCancelRemoval: number; canCancel?: number }; export interface ProvisioningListOptions { view?: 'active' | 'history' | 'all'; action?: ProvisioningAction; status?: 'attention'; server?: string; limit?: number; offset?: number; } export interface ProvisioningListPage { deployments: ProvisioningListRow[]; total: number; needsReview: number; limit: number; offset: number; } export function provisioningPageSize(value: number): number { return Number.isFinite(value) ? Math.min(100, Math.max(1, Math.floor(value) || 25)) : 25; } export function provisioningPageOffset(value: number): number { return Number.isFinite(value) ? Math.min(1_000_000, Math.max(0, Math.floor(value))) : 0; }