/// import type { HTMLAttributes } from 'svelte/elements'; import type { TransitionConfig } from 'svelte/transition'; export type Expand = T extends object ? T extends infer O ? { [K in keyof O]: O[K]; } : never : T; export type ValueOf = T[keyof T]; export type HTMLDivAttributes = HTMLAttributes; export type Prettify = { [K in keyof T]: T[K]; } & {}; export type RenameProperties>> = Expand<{ [K in keyof T as K extends keyof NewNames ? NewNames[K] extends PropertyKey ? NewNames[K] : K : K]: T[K]; }>; export type PrefixKeys = Expand<{ [K in keyof T as `${Prefix}${Capitalize}`]: T[K]; }>; export type Transition = (node: Element, params?: any) => TransitionConfig; export type Arrayable = T | T[];