import { type IInboxWidgetConfig, type TMessagesElementsType } from './inbox_widget.types';
import { type Pushwoosh } from '../../core/Pushwoosh';
import { type IInboxMessagePublic } from '../../models/InboxMessages.types';
export declare class PWInboxWidget {
    pw: Pushwoosh;
    widget: HTMLElement;
    trigger: HTMLElement;
    list: HTMLElement;
    widgetParent: HTMLElement;
    count: number;
    messages: Array<IInboxMessagePublic>;
    messagesElements: TMessagesElementsType;
    readItems: Array<string>;
    isOpened: boolean;
    config: IInboxWidgetConfig;
    defaultMargin: number;
    isFixed: boolean;
    constructor(pw: Pushwoosh);
    run(): Promise<void>;
    toggle(isOpened?: boolean): void;
    private initTrigger;
    private renderWidget;
    private getStyle;
    private configureStyle;
    private getStyleFormatter;
    private renderWidgetInner;
    private renderMessages;
    private updateCounter;
    private updateInboxMessages;
    openWidget(): void;
    closeWidget(): void;
    private positionWidget;
    private customPlaceWidget;
    private defaultPlaceWidget;
    private alignWidgetTop;
    private alignWidgetRight;
    private alignWidgetLeft;
    private alignWidgetBottom;
    private alignWidgetElement;
    private getDefaultPosition;
    private addListeners;
    private markVisibleItemsAsRead;
    private updateReadStatus;
    private updateInbox;
    private performMessageAction;
    private removeMessages;
    private onTriggerClickHandler;
    private onWidgetClickHandler;
    private onWindowScrollHandler;
}
