import { type AfterViewChecked, EventEmitter, type OnChanges, type SimpleChanges } from "@angular/core"; import { type OptionsGridPlan, type SuggestionOption } from "@magicx-eng/ai-autocomplete-vanilla"; import * as i0 from "@angular/core"; /** * Internal grid of suggestion options. Mirrors * `packages/react/src/components/SuggestionGrid.tsx` — a thin wrapper over the * `Grid` layout primitive (which owns the auto-fit columns and the * capped-height scroll). It only wires each option to its * select/highlight handlers and listbox-scoped id. * * @internal */ export declare class SuggestionGridComponent implements OnChanges, AfterViewChecked { options: SuggestionOption[]; activeIndex: number; listboxId: string; loading: boolean; /** * Identity of the suggestion these options belong to. When it changes the * grid scrolls back to the top, so the next parameter's options are read * from the first one instead of from the previous list's scroll offset. */ groupKey: string; /** * Which side of the input the dropdown opens on. The rows' entrance starts * from the input's side outward, so "above" reverses the order. */ optionsPosition: "above" | "below"; /** Whether rows draw their `icon_svg` before the text. Default: true. */ showIcons: boolean; /** Whether rows draw their `image_url` as a thumbnail before the text. Default: true. */ showImages: boolean; /** Whether rows show their `item_count` at the trailing edge. Default: true. */ showCounts: boolean; readonly select: EventEmitter; readonly highlight: EventEmitter; /** The pointer left option `index` — the dropdown clears a highlight still on it. */ readonly unhighlight: EventEmitter; private readonly cdr; private gridComp?; /** * The measured layout plan. Starts as the measurement-free baseline (one * column); after each view update the rendered rows are measured and the * plan upgrades to two columns when they provably fit — same two-pass the * React grid does with its layout effect, all through `planOptionsGrid`. */ plan: OptionsGridPlan; private needsMeasure; /** * The rows the current plan was measured from. A skeleton mirroring them * keeps that plan — see `sameOptionRows`. */ private measuredRows; onResize(): void; ngOnChanges(changes: SimpleChanges): void; ngAfterViewChecked(): void; isScrollHint(index: number): boolean; /** * Start delay of row `index`'s entrance — each row rises in a beat after * the one nearer the input. Skeleton rows fade in together (they're * placeholders, not content arriving). */ enterDelayMs(index: number): number; /** * The group is part of the identity: a new suggestion's options are new * rows and get the entrance animation even when one spells the same as a * row already on screen. */ trackByOptionText: (_: number, opt: SuggestionOption) => string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } //# sourceMappingURL=suggestion-grid.component.d.ts.map