import type { ActionReturn } from 'svelte/action'; import type { Readable } from 'svelte/store'; export type IfEquals = (() => G extends T ? 1 : 2) extends () => G extends U ? 1 : 2 ? Y : N; export type WrapWithCustomEvent = { [K in keyof T]: CustomEvent; }; export type Nullable = T | null; export type ValueOf = T[keyof T]; export type Arrayable = T | T[]; export type CreatePaginationProps = { count: number; perPage?: number; }; type NullableKeys = { [K in keyof T]: undefined extends T[K] ? K : never; }[keyof T]; export type Defaults = { [K in NullableKeys]?: T[K]; }; export type TextDirection = 'ltr' | 'rtl'; export type Orientation = 'horizontal' | 'vertical'; export type Prettify = { [K in keyof T]: T[K]; } & {}; export type Expand = T extends object ? T extends infer O ? { [K in keyof O]: O[K]; } : never : T; export type ExpandDeep = T extends object ? T extends infer O ? { [K in keyof O]: ExpandDeep; } : never : T; type Without = { [P in Exclude]?: never; }; export type XOR = T | U extends object ? (Without & U) | (Without & T) : T | U; export type BuilderReturn any> = { [P in keyof ReturnType]: ReturnType[P]; }; export type EventHandler = (event: T) => void; export type MeltEvent = CustomEvent<{ originalEvent: E; }>; export type MeltEventHandler = EventHandler, 'initCustomEvent'>>>; export type MeltActionReturn = ActionReturn : never; }>; type CustomMeltComponentEvents = { [K in Events as `m-${string & K}`]?: K extends keyof HTMLElementEventMap ? MeltEventHandler : never; }; export type InternalCustomEvents = { [K in Events as K]?: K extends keyof HTMLElementEventMap ? EventHandler : never; }; type ElementEvents = T extends ReadonlyArray ? U : never; export type GroupedEvents = { [K in keyof T]: ElementEvents; }; export type MeltComponentEvents = { [K in keyof T]: T[K] extends keyof HTMLElementEventMap ? CustomMeltComponentEvents : never; }; export type WhenTrue = [ TrueOrFalse ] extends [true] ? IfTrue : [TrueOrFalse] extends [false] ? IfFalse : IfNeither; 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 NonEmptyArray = [T, ...T[]]; export type MaybeReadable = T | Readable; export {};