interface Nothing { } type Union = T | (U & Nothing); export type Intellisense = Union; export type MaybeArray = T | Array; export type MaybePromise = T | Promise; export type NonNullable = Exclude; /** * Debounce the provided function. * @param cb Callback function. * @param wait The time to wait in milliseconds. */ export declare function debounce(cb: (...args: T) => K, wait?: number): (...args: T) => Promise; /** * Check if two sets have the same values. * @param a First set. * @param b Second set. * @returns Whether the two sets contain the same values. */ export declare function areEqualSets(a: Set, b: Set): boolean; /** * Merge a partial interface with the provided one. * @param partial The partial interface. * @param def Default interface values. * @returns The merged interface. */ export declare function mergeDefaultInterface(partial: Partial | undefined, def: T): T; export declare class CustomEvent extends Event { detail: T; constructor(message: string, data: EventInit & { detail: T; }); } export {};