import { type OnChanges, type OnDestroy, type OnInit, type SimpleChanges } from "@angular/core"; import type { AIAutocompleteController } from "../../controller/ai-autocomplete.controller"; import * as i0 from "@angular/core"; /** * Internal directive that owns every concern specific to running the * autocomplete on top of a contentEditable host: composition state, caret * tracking, selectionchange handling, `beforeinput` interception, paste * sanitization, plaintext-only feature detection, segment rendering, * post-promote refocus, and re-edit caret park. * * Mirrors `packages/react/src/hooks/useContentEditableEditor.ts` one-for-one. * Used only by the Tier 1 `` component — never exported. * * @internal */ export declare class AIAutocompleteEditorHostDirective implements OnInit, OnChanges, OnDestroy { controller: AIAutocompleteController; autoFocus: boolean; /** Whether completed chips draw the icon of the option that answered them. Default: true. */ showChipIcons: boolean; /** Whether completed chips draw the picture of the option that answered them, in place of the icon. Default: true. */ showChipImages: boolean; private readonly el; private readonly renderer; private readonly zone; private readonly destroy$; private composing; private lastInputAt; private lastSeenParamId; private lastState; private lastEditingId; /** * Id of whichever chip the dropdown is currently open on — a completed param * being re-edited, or a span the server identified as a date. Either kind * counts, otherwise every caret tick inside an open date span would re-enter * the pick it is already in. */ private editingParamId; private documentSelectionListener?; private beforeInputListener?; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; private renderEditor; ngOnDestroy(): void; /** * A tap on a chip opens *that* chip. Touch browsers place the caret where * they see fit (iOS snaps it to a word boundary, and the focusing tap often * parks it at the end of the text — inside the last chip when the input ends * with one), so the selectionchange path can miss the tapped chip or open * the wrong one. The click target is the element actually hit and overrides * it; `keepCaretOnChip` then pulls a stray caret onto the tapped chip so the * next selectionchange doesn't close or redirect what the tap opened. */ onClick(event: MouseEvent): void; onCompositionStart(): void; onCompositionEnd(): void; onInput(): void; onKeyDown(event: KeyboardEvent): void; onPaste(event: ClipboardEvent): void; onFocus(): void; onBlur(): void; private fireInput; private bindDocumentSelectionListener; private bindBeforeInputListener; private bindStateSubscription; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵdir: i0.ɵɵDirectiveDeclaration; } //# sourceMappingURL=editor-host.directive.d.ts.map