import { VizItemExportType, FilterGroup, VizItemOptions, VizItemSlot, VizItemType } from '@luzmo/dashboard-contents-types';
import * as SharedLib from '@luzmo/shared-embed';
import { LitElement, PropertyValues } from 'lit';
/**
 * The version of the dashboard contents that is linked to the current library.
 *
 * If custom options/slots/etc. are passed to the component, the library assumes that
 * they are using this dashboard contents version. Then custom options/slots/etc.
 * together with this dashboard contents version are passed to the dashboard app (https://app.luzmo.com/dashboard-app/remoteEntry.js)
 * and if needed the migration will be applied on the dashboard app level.
 */
export declare const dashboardContentsVersion = "0.1.99";
type FunctionCall = [(...args: any) => any, any[]];
interface LuzmoVizItemComponentInterface extends HTMLElement {
    options?: VizItemOptions;
    type?: VizItemType;
    appServer?: string;
    apiHost?: string;
    slots?: VizItemSlot[];
    canFilter?: string[] | 'all';
    filters?: FilterGroup[];
    contextId?: string;
    authKey?: string;
    authToken?: string;
    dashboardId?: string;
    itemId?: string;
    getFilters: () => FilterGroup[];
    export: (type?: VizItemExportType) => Promise<string | void>;
    refreshData: () => void;
    getData: () => SharedLib.ItemData;
    setSelectedData: (selectedDataInput: SharedLib.SelectedDataInput) => SharedLib.SetSelectedData;
    setAuthorization: (key: string, token: string) => void;
}
export type { LuzmoVizItemComponentInterface };
export declare class LuzmoBaseVizItem extends LitElement implements LuzmoVizItemComponentInterface {
    appServer?: string;
    apiHost?: string;
    slots?: VizItemSlot[];
    options?: VizItemOptions;
    type?: VizItemType;
    authKey?: string;
    authToken?: string;
    version?: string;
    contextId?: string;
    canFilter?: SharedLib.CanFilter;
    filters?: FilterGroup[];
    dashboardId?: string;
    itemId?: string;
    selectedData: SharedLib.SelectedDataInput;
    dashboardContentsVersion?: string;
    libVersion?: string;
    chartElement: HTMLElement & Partial<LuzmoVizItemComponentInterface> & {
        setSelectedData?: (itemId?: string, filters?: SharedLib.SelectedDataInput) => SharedLib.SetSelectedData;
    };
    postInitCallQueue: FunctionCall[];
    static styles: import("lit").CSSResult;
    protected createRenderRoot(): HTMLElement | DocumentFragment;
    canInitializeVizItem(): boolean;
    getFilters(): FilterGroup[];
    export(type?: VizItemExportType): Promise<string | void>;
    getData(): SharedLib.ItemData;
    refreshData(): void;
    setSelectedData(selectedDataInput: SharedLib.SelectedDataInput): SharedLib.SetSelectedData;
    setAuthorization(key: string, token: string): void;
    attributeChangedCallback(name: string, _old: string | null, value: string | null): void;
    protected firstUpdated(_changedProperties: PropertyValues): Promise<void>;
    private createAndAppendElement;
    private updateVizItemProperties;
    updated(changedProperties: PropertyValues): Promise<void>;
    protected render(): unknown;
}
