import { LitElement } from "lit";
import "./or-dashboard-widgetcontainer";
import { DashboardGridItem, DashboardScreenPreset, DashboardTemplate, DashboardWidget } from "@openremote/model";
import "@openremote/or-components/or-loading-indicator";
import { GridItemHTMLElement, GridStack, GridStackNode } from "gridstack";
export interface DashboardGridNode extends GridStackNode {
    widgetTypeId: string;
}
export interface DashboardPreviewSize {
    displayName: string;
    width?: number;
    height?: number;
}
declare const OrDashboardPreview_base: (new (...args: any[]) => {
    _i18nextJustInitialized: boolean;
    _language: string;
    connectedCallback(): void;
    disconnectedCallback(): void;
    shouldUpdate(changedProps: import("lit").PropertyValues): any;
    initCallback: (options: import("i18next").InitOptions) => void;
    langChangedCallback: () => void;
    readonly isConnected: boolean;
}) & typeof LitElement;
export declare class OrDashboardPreview extends OrDashboardPreview_base {
    set template(newValue: DashboardTemplate);
    private _template?;
    get template(): DashboardTemplate;
    protected readonly dashboardId?: string;
    protected realm?: string;
    protected selectedWidget: DashboardWidget | undefined;
    protected editMode: boolean;
    protected readonly: boolean;
    protected previewWidth?: string;
    protected previewHeight?: string;
    protected previewZoom: number;
    protected previewSize?: DashboardPreviewSize;
    protected availablePreviewSizes?: DashboardPreviewSize[];
    protected fullscreen: boolean;
    protected latestChanges?: {
        changedKeys: string[];
        oldValue: DashboardTemplate;
        newValue: DashboardTemplate;
    };
    protected activePreset?: DashboardScreenPreset;
    protected rerenderActive: boolean;
    protected isLoading: boolean;
    protected grid?: GridStack;
    protected latestDragWidgetStart?: Date;
    constructor();
    static get styles(): import("lit").CSSResult[];
    shouldUpdate(changedProperties: Map<PropertyKey, unknown>): boolean;
    updated(changedProperties: Map<string, any>): void;
    setupGrid(recreate: boolean, force?: boolean): Promise<void>;
    refreshPreview(): void;
    refreshWidgets(): void;
    protected selectGridItem(gridItem: GridItemHTMLElement): void;
    protected deselectGridItem(gridItem: GridItemHTMLElement): void;
    protected deselectGridItems(gridItems: GridItemHTMLElement[]): void;
    protected onGridItemClick(gridItem: DashboardGridItem | undefined): void;
    protected onFitToScreenClick(): void;
    protected isPreviewVisible(): boolean;
    protected render(): import("lit").TemplateResult<1>;
    protected resizeObserver?: ResizeObserver;
    protected previousObserverEntry?: ResizeObserverEntry;
    disconnectedCallback(): void;
    protected setupResizeObserver(element: Element): ResizeObserver;
    protected resizeObserverCallback: ResizeObserverCallback;
    protected _onGridResize(): void;
    protected processTemplateChanges(changes: {
        changedKeys: string[];
        oldValue: DashboardTemplate;
        newValue: DashboardTemplate;
    }): void;
    protected waitUntil(conditionFunction: any): Promise<unknown>;
    protected onWidgetDrop(_ev: Event, _prevWidget: any, newWidget: DashboardGridNode | undefined): void;
}
export {};
//# sourceMappingURL=or-dashboard-preview.d.ts.map