import type { GetItemKeys } from '../types/utils'; import type { IconComponent } from '../types/icons'; export declare function pick(data: Data, keys: Keys[]): Pick; export declare function omit(data: Data, keys: Keys[]): Omit; export declare function get(object: Record | undefined, path: (string | number)[] | string, defaultValue?: any): any; /** * Assigns `value` at a dotted `path`, creating intermediate objects as it goes. * * Neither this nor `get()` is reachable from inside b24ui — nothing in `src/` * calls `set()`, and every `get()` path the components pass is an * author-written `labelKey` / `valueKey`. Both are on the public `./utils` * entry though, so the guard is for the consumer who forwards a path that came * from somewhere less trustworthy. See `utils/prototype-guard.ts` for what is * being defended against. * * @throws {TypeError} if any path segment names `__proto__`, `constructor` or * `prototype`. Such a path writes through to a shared prototype rather than to * `object`, and unlike a read there is no sensible value to return instead: the * caller's data model ends up in a state they do not believe it is in either * way, and an exception is the outcome they can catch. */ export declare function set(object: Record, path: (string | number)[] | string, value: any): void; /** * Index of the first item whose `valueKey` field strictly equals `value`. * Timeline and Stepper resolve their active item through this. */ export declare function itemValueIndex(items: T[], value: unknown, valueKey: string): number; export declare function looseToNumber(val: any): any; export declare function compare(value?: T, currentValue?: T, comparator?: string | ((a: T, b: T) => boolean)): boolean; export declare function isEmpty(value: unknown): boolean; export declare function getDisplayValue, V>(items: T, value: V | undefined | null, options?: { valueKey?: GetItemKeys; labelKey?: GetItemKeys; by?: string | ((a: any, b: any) => boolean); }): string | undefined; export declare function isArrayOfArray(item: A): item is A extends Array ? T extends any[] ? T[] : never : never; export declare function mergeClasses(appConfigClass?: string | string[], propClass?: string): "" | (string | undefined)[]; export declare function getSlotChildrenText(children: any): any; export declare function extractPromptText(el: Element | null | undefined): string; /** * Resolve an icon component by name from `dictionary/icons.ts`. * * Accepts both short camelCase aliases used internally (`"tip"`, `"warning"`, * `"info"`) and PascalCase named icons exposed to markdown authors via * `iconName` (`"InfoCircleIcon"`, `"GitHubIcon"`, ...). Returns `undefined` * when the name is not in the dictionary. */ export declare function resolveIcon(name?: string | null): IconComponent | undefined; export declare function transformUI(ui: any, uiProp?: any): any; export declare function resolveBaseURL(path?: string, baseURL?: string): string | undefined; export * from './content';