import { LitElement, PropertyValues, TemplateResult } from "lit";
import * as Model from "@openremote/model";
import "@openremote/or-mwc-components/or-mwc-input";
import "@openremote/or-components/or-panel";
import "@openremote/or-translate";
import { MDCDataTable } from "@material/data-table";
import "@openremote/or-mwc-components/or-mwc-menu";
import { ListItem } from "@openremote/or-mwc-components/or-mwc-list";
import { GenericAxiosResponse } from "axios";
export interface ViewerConfig {
    allowedCategories?: Model.SyslogCategory[];
    initialCategories?: Model.SyslogCategory[];
    initialFilter?: string;
    initialLevel?: Model.SyslogLevel;
    hideCategories?: boolean;
    hideFilter?: boolean;
    hideLevel?: boolean;
}
declare const OrLogViewer_base: (new (...args: any[]) => {
    _i18nextJustInitialized: boolean;
    _language: string;
    connectedCallback(): void;
    disconnectedCallback(): void;
    shouldUpdate(changedProps: PropertyValues): any;
    initCallback: (options: import("i18next").InitOptions) => void;
    langChangedCallback: () => void;
    readonly isConnected: boolean;
}) & typeof LitElement;
export declare class OrLogViewer extends OrLogViewer_base {
    static DEFAULT_TIMESTAMP_FORMAT: string;
    static DEFAULT_LIMIT: number;
    static DEFAULT_LEVEL: Model.SyslogLevel;
    static DEFAULT_INTERVAL: Model.DatapointInterval;
    static get styles(): import("lit").CSSResult[];
    interval?: Model.DatapointInterval;
    timestamp?: Date;
    limit?: number;
    categories?: Model.SyslogCategory[];
    filter?: string;
    level?: Model.SyslogLevel;
    live: boolean;
    config?: ViewerConfig;
    protected _loading: boolean;
    protected _data?: Model.SyslogEvent[];
    protected _tableElem: HTMLDivElement;
    protected _table?: MDCDataTable;
    protected _eventSubscriptionId?: string;
    protected _refresh?: number;
    protected _pageCount?: number;
    protected _currentPage: number;
    protected _pendingCategories?: Model.SyslogCategory[];
    connectedCallback(): void;
    disconnectedCallback(): void;
    shouldUpdate(_changedProperties: PropertyValues): boolean;
    render(): TemplateResult<1>;
    protected _getLimitOptions(): string[];
    protected _getLevelOptions(): string[][];
    protected _getCategoryMenuItems(): ListItem[];
    protected getLimit(): number;
    protected _onCategoriesChanged(values: Model.SyslogCategory[]): void;
    protected _onCategoriesClosed(): void;
    protected _onLiveChanged(live: boolean): void;
    protected _onLimitChanged(limit: string): void;
    protected _onFilterChanged(filter: string): void;
    protected _onLevelChanged(level: Model.SyslogLevel): void;
    protected _getTable(): TemplateResult;
    /** Copy a single log event to the clipboard as JSON */
    protected _copyRow(row: Model.SyslogEvent): Promise<void>;
    protected _getIntervalOptions(): [string, string][];
    protected _loadData(): Promise<void>;
    protected _getPageCount(response: GenericAxiosResponse<any>): number | undefined;
    protected _updatePage(forward: boolean): void;
    protected _subscribeEvents(): Promise<void>;
    protected _unsubscribeEvents(): void;
    protected _getFrom(): number | undefined;
    protected _calculateTimestamp(timestamp: Date, forward?: boolean): Date | undefined;
    protected _onEvent(event: Model.SyslogEvent): void;
    protected _eventMatchesLevel(event: Model.SyslogEvent): boolean;
    protected _cleanup(): void;
}
export {};
