import type { UmbPartialSome } from '../../utils/type/index.js'; import type { UmbHint, UmbIncomingHintBase } from '../types.js'; import { UmbControllerBase, type UmbClassInterface } from '../../../../libs/class-api/index.js'; import type { UmbControllerHost } from '../../../../libs/controller-api/index.js'; import { type Observable } from '../../../../libs/observable-api/index.js'; export interface UmbHintControllerArgs { viewAlias?: string | null; scaffold?: Partial; } export declare class UmbHintController> extends UmbControllerBase { #private; getViewAlias(): string | null; setPathFilter(filter: (path: Array) => boolean): void; readonly scaffold: Observable>; readonly hints: Observable; readonly firstHint: Observable; updateScaffold(updates: Partial): void; getScaffold(): Partial; constructor(host: UmbControllerHost, args?: UmbHintControllerArgs); /** * Provide this validation context to a specific controller host. * This can be used to Host a validation context in a Workspace, but provide it on a certain scope, like a specific Workspace View. * @param {UmbClassInterface} controllerHost - The controller host to provide this validation context to. */ provideAt(controllerHost: UmbClassInterface): void; unprovide(): void; asObservablePart(fn: (hints: HintType[]) => R): Observable; descendingHints(viewAlias?: string | null): Observable | undefined>; /** * @internal * @param {(path: Array) => boolean} filter - A filter function to filter the hints by their path. * @returns {Observable | undefined>} An observable of an array of hints that match the filter. */ _internal_descendingHintsByFilter(filter: (path: Array) => boolean): Observable | undefined>; inherit(): void; inheritFrom(parent: UmbHintController | undefined): void; initiateChange(): void; finishChange(): void; /** * Add a new hint * @param {HintType} hint - The hint to add * @returns {HintType['unique']} Unique value of the hint */ addOne(hint: IncomingHintType): string | symbol; /** * Add multiple rules * @param {HintType[]} hints - Array of hints to add */ add(hints: IncomingHintType[]): void; /** * Remove a hint * @param {HintType['unique']} unique Unique value of the hint to remove */ removeOne(unique: HintType['unique']): void; /** * Remove multiple hints * @param {HintType['unique'][]} uniques Array of unique values to remove */ remove(uniques: HintType['unique'][]): void; /** * Check if a hint exists * @param {HintType['unique']} unique Unique value of the hint to check * @returns {boolean} True if the hint exists, false otherwise */ has(unique: HintType['unique']): boolean; /** * Get all hints * @returns {HintType[]} Array of hints */ getAll(): HintType[]; /** * Clear all hints */ clear(): void; destroy(): void; }