import type { Hooks } from '@smeijer/ky'; export type WithRequired = Omit & Required>; export type ClientOptions = { host?: string; token?: string; apiKey?: string; apiSecret?: string; userEmail?: string; userExternalId?: string; userHmac?: string; appInfo?: { name: string; version?: string; url?: string; }; timeout?: number; maxRetries?: number; maxRetryDelay?: number; idempotencyKey?: string; telemetry?: boolean; features?: Record; headers?: Record; hooks?: Hooks; cacheTTL?: number; }; export type FeatureFlag = keyof ClientOptions['features']; export type RequestOptions = { userEmail?: string; userExternalId?: string; userHmac?: string; idempotencyKey?: string; timeout?: number; maxRetries?: number; maxRetryDelay?: number; }; export type RequestMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE'; export type RequestArgs = { method: RequestMethod; path: string; data?: Record; params?: Record; headers?: Record; };