import { CourierInboxFeedType } from '../types/feed-type';
import { CourierInboxHeaderFactoryProps, CourierInboxListItemActionFactoryProps, CourierInboxListItemFactoryProps, CourierInboxPaginationItemFactoryProps, CourierInboxStateEmptyFactoryProps, CourierInboxStateErrorFactoryProps, CourierInboxStateLoadingFactoryProps } from '../types/factories';
import { CourierInboxTheme } from '../types/courier-inbox-theme';
import { CourierInboxThemeManager } from '../types/courier-inbox-theme-manager';
export declare class CourierInbox extends HTMLElement {
    private _currentFeed;
    private _themeManager;
    get theme(): CourierInboxTheme;
    setLightTheme(theme: CourierInboxTheme): void;
    setDarkTheme(theme: CourierInboxTheme): void;
    private _shadow;
    private _list;
    private _datastoreListener;
    private _authListener;
    private _style;
    private _header;
    private _headerFactory;
    private _onMessageClick?;
    private _onMessageActionClick?;
    private _onMessageLongPress?;
    private _defaultProps;
    static get observedAttributes(): string[];
    constructor(themeManager?: CourierInboxThemeManager);
    private refreshTheme;
    private getStyles;
    setHeader(factory: (props: CourierInboxHeaderFactoryProps | undefined | null) => HTMLElement): void;
    removeHeader(): void;
    setLoadingState(factory: (props: CourierInboxStateLoadingFactoryProps | undefined | null) => HTMLElement): void;
    setEmptyState(factory: (props: CourierInboxStateEmptyFactoryProps | undefined | null) => HTMLElement): void;
    setErrorState(factory: (props: CourierInboxStateErrorFactoryProps | undefined | null) => HTMLElement): void;
    setListItem(factory: (props: CourierInboxListItemFactoryProps | undefined | null) => HTMLElement): void;
    setPaginationItem(factory: (props: CourierInboxPaginationItemFactoryProps | undefined | null) => HTMLElement): void;
    onMessageClick(handler?: (props: CourierInboxListItemFactoryProps) => void): void;
    onMessageActionClick(handler?: (props: CourierInboxListItemActionFactoryProps) => void): void;
    onMessageLongPress(handler?: (props: CourierInboxListItemFactoryProps) => void): void;
    setFeedType(feedType: CourierInboxFeedType): void;
    private updateHeader;
    private load;
    refresh(): void;
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, oldValue: string, newValue: string): void;
}
