import { StringDictionary } from "../util";
import { AttributeCellValue } from "./AttributeCellValue";
import { Cell } from './Cell';
import { CellValue } from './CellValue';
import { LabelCellValue } from "./LabelCellValue";
import { View } from './View';
/**
 * A abstract definition for small visual area populated with labels and values. Labels are typically presented as simple text phrases.
 * Values are usually presented inside a UI component, such as a TextField or ComboBox.
 */
export declare class Details extends View {
    readonly cancelButtonText: string;
    readonly commitButtonText: string;
    readonly editable: boolean;
    readonly focusPropertyName: string;
    readonly gmlMarkup: string;
    readonly rows: Cell[][];
    private attributeCellMap;
    private propertyLabelMap;
    private constantsArray;
    private propertyNamesArray;
    findCellValue(matcher: (cellValue: CellValue) => CellValue): CellValue;
    /**
     * @param matcher - a function that given a row of cells, returns a matching CellValue (or null)
     */
    findCellValueForRow(matcher: (row: Cell[]) => CellValue): CellValue;
    getAttributeCellValue(propertyName: string): AttributeCellValue;
    /**
     * 1-based index
     * @param number
     */
    getConstantByIndex(index: number): string;
    getLabelForProperty(propertyName: string): LabelCellValue;
    readonly constants: string[];
    readonly propertyNames: string[];
    readonly attributeCells: AttributeCellValue[];
    readonly attributeCellsByPropName: StringDictionary;
    readonly labelsByPropName: StringDictionary;
    private initIndexes;
}
