import { TemplateResult } from "lit";
import { OrMwcTable, TableColumn, TableConfig, TableContent, TableRow } from "@openremote/or-mwc-components/or-mwc-table";
import { AlarmSeverity, AlarmStatus, Asset, SentAlarm } from "@openremote/model";
/**
 * ## AlarmTableColumn
 * Custom model that inherits on {@link TableColumn}, and adds {@link widthWeight},
 * which impacts the column width; higher numbers are 'more important' and get wider, others get smaller.
 * */
export interface AlarmTableColumn extends TableColumn {
    widthWeight?: number;
}
/**
 * ## or-alarms-table
 * <p>
 * It extends on {@link OrMwcTable}, and applies both additional styling and helper functions to it.
 * </p>
 * Usage;
 * <pre>
 *   <or-alarms-table .alarms="${alarms}"></or-alarms-table>
 * </pre>
 * */
export declare class OrAlarmsTable extends OrMwcTable {
    alarms: SentAlarm[];
    readonly: boolean;
    columns: AlarmTableColumn[];
    protected config: TableConfig;
    protected sortIndex: number;
    protected sortDirection: "ASC" | "DESC";
    static get styles(): import("lit").CSSResult[];
    protected willUpdate(changedProps: Map<string, any>): any;
    protected getTableRows(alarms: SentAlarm[]): TableRow[] | undefined;
    protected getSeverityContent(severity?: AlarmSeverity): TemplateResult | string | number;
    protected getDisplayNameContent(title?: string): TableContent;
    protected getAlarmStatusContent(status?: AlarmStatus): TableContent;
    protected getLinkedAssetsContent(assets?: Asset[]): TableContent;
    protected getAssigneeContent(assigneeName?: string): TableContent;
    protected getLastModifiedContent(lastModified?: number): TableContent;
    protected sortTemplateRows(cellA: any, cellB: any, cIndex: number, sortDirection: 'ASC' | 'DESC'): number;
    /** Applies the custom 'weighted width' field of AlarmTableColumn, to make columns wider/smaller relative to others. */
    protected getColumnWidth(index: number, columns?: string[] | TableColumn[], tableWidthPx?: number): string | undefined;
    /** In AlarmTableColumn, columns can have a 'weighted width' which makes them wider/smaller relative to others.
     * This function calculates the total of these values. */
    protected getTotalColumnWidthWeight(columns?: string[] | TableColumn[]): number | undefined;
}
//# sourceMappingURL=or-alarms-table.d.ts.map