import { OnInit, OnDestroy, ElementRef } from '@angular/core';
import { ApiService } from '../services/api.service';
import { TranslationService } from '../services/translation.service';
import * as i0 from "@angular/core";
interface Option {
    id: string;
    helpScreenId: string;
    parentOptionId: string | null;
    nestedOptions: Option[];
    title: string;
    paragraphs: string[];
    chatWithUs: boolean;
    assistantId?: string;
    assistant?: {
        id: string;
        tenantId: string;
        tenant: {
            id: string;
            name: string;
            key: string;
        };
        name: string;
        openAIAssistantId: string;
        greeting: string;
        closing: string;
    };
    hasNestedOptions: boolean;
    order: number;
}
interface Message {
    id: string | number;
    sender: 'user' | 'assistant' | 'agent';
    senderType: number;
    messageContent: string;
    sentAt: Date;
    isSeen: boolean;
}
export declare class HelpCenterWidgetComponent implements OnInit, OnDestroy {
    private apiService;
    private translationService;
    getToken: () => Promise<string>;
    helpScreenId: string;
    showArrow: boolean;
    messageLabel: string | null;
    set currentLang(value: string);
    get currentLang(): string;
    isIntroScreenEnabled: boolean;
    chatMessagesContainer: ElementRef;
    private _currentLang;
    private langSubscription?;
    isRTL: boolean;
    isPopupOpen: boolean;
    helpScreenData: any;
    status: string;
    error: string | null;
    showArrowAnimation: boolean;
    showTooltip: boolean;
    sessionId: string | null;
    isAblyConnected: boolean;
    isChatClosed: boolean;
    showChat: boolean;
    messageText: string;
    isTyping: boolean;
    messages: Message[];
    showHelpScreenData: boolean;
    chatIsLoading: boolean;
    ablyToken: string | null;
    isOpen: boolean;
    needsAgent: boolean;
    assistantStatus: string;
    selectedOption: Option | null;
    selectedNestedOption: Option | null;
    showEndChatConfirmation: boolean;
    constructor(apiService: ApiService, translationService: TranslationService);
    ngOnInit(): void;
    ngOnDestroy(): void;
    handleTogglePopup(): Promise<void>;
    private fetchHelpScreenData;
    createChatSession(option?: Option): Promise<any>;
    sendMessage(messageText?: string): Promise<void>;
    sendMessageToChatSession(chatSessionId: string, messageDto: any): Promise<any>;
    handleReceiveMessage(message: string, senderType: string, needsAgent: boolean): void;
    private getSenderType;
    handleStartNewChat(option: Option): Promise<void>;
    private startNewChatSession;
    handleStartChat(option: any): Promise<void>;
    handleEndChat(): Promise<void>;
    confirmEndChat(): Promise<void>;
    cancelEndChat(): void;
    closeChatSession(chatSessionId: string): Promise<any>;
    handleClosePopup(): void;
    handleCloseArrowAnimation(): void;
    handleBack(): void;
    handleShowChat(): void;
    selectOption(option: Option): void;
    selectNestedOption(nestedOption: Option): void;
    handleShowHelpScreenData(): void;
    handleHideHelpScreenData(): void;
    private scrollToBottom;
    getDirection(): "ltr" | "rtl";
    get helpScreenDataList(): any;
    navigateToUrl(url: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<HelpCenterWidgetComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<HelpCenterWidgetComponent, "app-help-center-widget", never, { "getToken": { "alias": "getToken"; "required": false; }; "helpScreenId": { "alias": "helpScreenId"; "required": false; }; "showArrow": { "alias": "showArrow"; "required": false; }; "messageLabel": { "alias": "messageLabel"; "required": false; }; "currentLang": { "alias": "currentLang"; "required": false; }; "isIntroScreenEnabled": { "alias": "isIntroScreenEnabled"; "required": false; }; }, {}, never, never, true, never>;
}
export {};
