import * as _angular_core from '@angular/core'; import { OnDestroy } from '@angular/core'; import { ZIcon } from '@shival99/z-ui/components/z-icon'; import { ClassValue } from 'clsx'; import * as class_variance_authority_types from 'class-variance-authority/types'; import { VariantProps } from 'class-variance-authority'; type ZChatRole = 'user' | 'assistant'; type ZChatPosition = 'bottom-right' | 'bottom-left'; type ZChatSize = 'sm' | 'default' | 'lg'; interface ZChatOffset { top?: number | string; right?: number | string; bottom?: number | string; left?: number | string; } interface ZChatAttachment { id: string; name: string; size: number; type: string; previewUrl?: string; file?: File; } interface ZChatMessage { id: string; role: ZChatRole; content: string; createdAt: number; files?: ZChatAttachment[]; } interface ZChatSuggestion { label: string; prompt?: string; icon?: ZIcon; } interface ZChatSendEvent { message: string; files: ZChatAttachment[]; messages: ZChatMessage[]; } declare class ZChatComponent implements OnDestroy { readonly class: _angular_core.InputSignal; readonly zOpen: _angular_core.ModelSignal; readonly zMessages: _angular_core.ModelSignal; readonly zTitle: _angular_core.InputSignal; readonly zSubtitle: _angular_core.InputSignal; readonly zPlaceholder: _angular_core.InputSignal; readonly zPosition: _angular_core.InputSignal; readonly zOffset: _angular_core.InputSignal; readonly zSize: _angular_core.InputSignal; readonly zSuggestions: _angular_core.InputSignal; readonly zShowSuggestions: _angular_core.InputSignalWithTransform; readonly zShowPulse: _angular_core.InputSignalWithTransform; readonly zDisabled: _angular_core.InputSignalWithTransform; readonly zLoading: _angular_core.InputSignalWithTransform; readonly zAllowAttachments: _angular_core.InputSignalWithTransform; readonly zAcceptedFiles: _angular_core.InputSignal; readonly zAutoReply: _angular_core.InputSignalWithTransform; readonly zAutoReplyDelay: _angular_core.InputSignal; readonly zFabIcon: _angular_core.InputSignal; readonly zBotIcon: _angular_core.InputSignal; readonly zSendIcon: _angular_core.InputSignal; readonly zSend: _angular_core.OutputEmitterRef; readonly zResponse: _angular_core.OutputEmitterRef; readonly zToggle: _angular_core.OutputEmitterRef; readonly zClear: _angular_core.OutputEmitterRef; protected readonly draftMessage: _angular_core.WritableSignal; protected readonly showRipple: _angular_core.WritableSignal; protected readonly attachments: _angular_core.WritableSignal; protected readonly isComposerExpanded: _angular_core.WritableSignal; protected readonly isComposerOverflowing: _angular_core.WritableSignal; protected readonly isPreviewVisible: _angular_core.WritableSignal; protected readonly previewImage: _angular_core.WritableSignal<{ url: string; name: string; size: number; } | null>; private readonly _mockTyping; private readonly _messagesScrollbarRef; private readonly _chatInputRef; private readonly _fileInputRef; private _mockReplyTimer; private _rippleTimer; private _scrollTimer; protected readonly wrapperClasses: _angular_core.Signal; protected readonly wrapperTop: _angular_core.Signal; protected readonly wrapperRight: _angular_core.Signal; protected readonly wrapperBottom: _angular_core.Signal; protected readonly wrapperLeft: _angular_core.Signal; protected readonly panelClasses: _angular_core.Signal; protected readonly fabClasses: _angular_core.Signal; protected readonly isTyping: _angular_core.Signal; protected readonly canSend: _angular_core.Signal; protected readonly hasMessages: _angular_core.Signal; protected readonly showEmptyState: _angular_core.Signal; protected readonly previewImageSizeLabel: _angular_core.Signal; ngOnDestroy(): void; open(): void; close(): void; clearMessages(): void; protected onToggle(): void; protected onSuggestionSelect(item: ZChatSuggestion): void; protected onClickAttach(): void; protected onFileChange(event: Event): void; protected onTextareaPaste(event: ClipboardEvent): void; protected removeAttachment(id: string): void; protected formatFileSize(size: number): string; protected isImageAttachment(file: ZChatAttachment): boolean; protected openImagePreview(file: ZChatAttachment): void; protected closeImagePreview(): void; protected onInputKeydown(event: KeyboardEvent): void; protected onTextareaInput(event: Event): void; protected onSendMessage(): void; private _toggle; private _createMessage; private _simulateReply; private _buildMockReply; private _triggerRipple; protected onMessagesScrollbarInit(): void; protected onEscapeKey(): void; private _scheduleScrollToBottom; private _ensureBottomVisible; private _scrollToBottom; private _focusInputSoon; private _releaseAttachmentUrls; private _appendFiles; private _createMessagePreviewUrl; private _resolveOffsetValue; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const zChatWrapperVariants: (props?: ({ zPosition?: "bottom-right" | "bottom-left" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; declare const zChatPanelVariants: (props?: ({ zPosition?: "bottom-right" | "bottom-left" | null | undefined; zSize?: "sm" | "default" | "lg" | null | undefined; zOpen?: boolean | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; declare const zChatFabVariants: (props?: ({ zOpen?: boolean | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; type ZChatVariants = VariantProps; export { ZChatComponent, zChatFabVariants, zChatPanelVariants, zChatWrapperVariants }; export type { ZChatAttachment, ZChatMessage, ZChatOffset, ZChatPosition, ZChatRole, ZChatSendEvent, ZChatSize, ZChatSuggestion, ZChatVariants };