import { WidgetBase } from "@csnext/cs-client";
import { FeatureType, GraphElement, PropertyType } from "@csnext/cs-data";
import { DataGridOptions } from "./data-grid-options";
import { DocDatasource } from "./../..";
export default class ElementDataGrid extends WidgetBase {
    toggle_view: number;
    featureType: FeatureType | null;
    potentialProperties: {
        [key: string]: PropertyType;
    };
    sort: PropertyType | undefined;
    group: PropertyType | undefined | null;
    classTypes: FeatureType[];
    sortOptions?: PropertyType[] | null;
    groupOptions?: PropertyType[] | null;
    groupKey?: null | string;
    focus: string;
    search: string;
    selectedTree?: any;
    items: GraphElement[] | undefined;
    iso?: any;
    calendar?: any;
    typeToLabel: {
        month: string;
        week: string;
        day: string;
        "4day": string;
    };
    headers: any[];
    treeItems: any[];
    upToDate: boolean;
    get options(): DataGridOptions;
    isLinked(element: GraphElement): boolean;
    selectEntity(element: GraphElement): void;
    itemPropValue(prop: PropertyType, element: GraphElement): any;
    setToday(): void;
    graphNode(element: GraphElement): void;
    viewChanged(): void;
    openTreeItem(item: any): void;
    toggleLinked(entity: GraphElement): Promise<void>;
    itemPropValues(prop: PropertyType, element: GraphElement): any;
    private filterDataTable;
    get source(): DocDatasource | undefined;
    selectElement(element: GraphElement, selected: boolean): void;
    clickCalendarItem(e: any): void;
    updateLayout(): void;
    updateHeaders(): void;
    setSort(prop: PropertyType): void;
    setGroup(prop?: PropertyType | string): void;
    selectTableItem(item: GraphElement): void;
    prev(): void;
    next(): void;
    getIsoOptions(): {
        itemSelector: string;
        layoutMode: string;
        getSortData: {
            name: (s: any) => any;
            custom: (s: any) => any;
        };
        sortBy: string;
        masonry: {
            columnWidth: string;
        };
    };
    addChildEntity(type: FeatureType, parent?: GraphElement): Promise<void>;
    addEntity(type: FeatureType, parent?: GraphElement): Promise<void>;
    editEntity(element: GraphElement): void;
    removeEntity(entity: GraphElement): void;
    constructor();
    updateTree(base?: GraphElement, active?: any): void;
    viewDay(date: string): void;
    updateEntities(force?: boolean): void;
    updateLinkedEntities(): void;
    update(): void;
    dateString(date: number): string;
    contentLoaded(): void;
    mounted(): void;
}
