import { EventEmitter } from '../../stencil-public-runtime'; import { AuthStatus, ChatStatus, Message } from '../../models/types'; import { AuthService } from '../../services/auth.service'; import { ChatService } from '../../services/chat.service'; export declare class EoChat { authStatus: AuthStatus; authService: AuthService | undefined; chatService: ChatService | undefined; /** Parent bumps this to force a reset (clears messages, aborts stream). */ resetKey: number; consentSaving: boolean; consentError: boolean; consentPrefillComms: boolean; messages: Message[]; status: ChatStatus; /** True from the blocked-screen retry click until the re-check resolves — keeps the blocked screen up with a button spinner. */ retryPending: boolean; /** Time (HH:MM) of the last failed retry — drives the "última verificação" pendency banner. */ lastRetryAt: string | null; eoChatClose: EventEmitter; eoChatNewSession: EventEmitter; /** Emitted when the user retries from the blocked state — parent re-runs auth. */ eoChatRetry: EventEmitter; /** Emitted on 403 CONSENT_REQUIRED from the chat — parent swaps to the consent screen. */ eoChatConsentRequired: EventEmitter; private abortController; onResetKeyChange(): void; onAuthStatusChange(newVal: AuthStatus): void; disconnectedCallback(): void; private resetChat; private handleSend; /** * Streams a single message attempt. On `TokenRejectedError`, clears the * session and retries exactly once with a fresh token — silent to the user. */ private runStream; private markAssistantError; /** Appends a user message plus an already-errored assistant bubble — used * when the failure happens before any stream starts (auth unreachable). */ private appendFailedExchange; private handleMessageRetry; private handleNewSession; private handleRetry; render(): any; }