import { EventEmitter, Injector, OnChanges, QueryList, SimpleChanges, TemplateRef } from '@angular/core';
import { CoreBaseComponent } from '../common/base.component';
import { Layout } from '../common/layout';
import { PropertyGridItemComponent } from './property-grid-item.component';
import * as i0 from "@angular/core";
/**
 * The pane orientation of the split view.
 */
export declare type PropertyGridOrientation = 'vertical' | 'horizontal';
/**
 *
 * @smeDoc {@label Property Grid @id sme-property-grid-component}
 *
 * @overview
 * @file {@filepath ./examples/overview.md}
 *
 * @example {@label Basic Usage @id basic-usage}
 * @file {@filename component.html @filepath ./examples/basic-usage.component.html}
 *
 * @example {@label Vertical Orientation @id vertical-orientation}
 * @file {@filename component.html @filepath ./examples/vertical-orientation.component.html}
 *
 * @example {@label Item with a Link @id link-item}
 * @file {@filename component.html @filepath ./examples/link-item.component.html}
 *
 * @example {@label Item with a Tooltip @id tooltip-item}
 * @file {@filename component.html @filepath ./examples/tooltip-item.component.html}
 *
 * @example {@label Item with a Action @id action-item}
 * @file {@filename component.ts @filepath ./examples/action-item.component.ts}
 * @file {@filename component.html @filepath ./examples/action-item.component.html}
 *
 * @example {@label Item Spanning Multiple Columns @id multi-column}
 * @file {@filename component.html @filepath ./examples/multi-column-item.component.html}
 *
 * @example {@label Items with Status and Icons @id status-and-icons}
 * @file {@filename component.html @filepath ./examples/status-item.component.html}
 *
 * @example {@label Items with complex value types @id complex-value}
 * @file {@filename component.html @filepath ./examples/complex-values.component.html}
 *
 */
export declare class PropertyGridComponent extends CoreBaseComponent implements Layout, OnChanges {
    /**
     * The basic column width for the property grid items.
     */
    layoutItemWidth: number;
    items: QueryList<PropertyGridItemComponent>;
    readonlyTemplate: TemplateRef<PropertyGridItemComponent>;
    actionLinkTemplate: TemplateRef<PropertyGridItemComponent>;
    internalLinkTemplate: TemplateRef<PropertyGridItemComponent>;
    externalLinkTemplate: TemplateRef<PropertyGridItemComponent>;
    /**
     * The source name to use for logging
     */
    protected get logSourceName(): string;
    /**
     * The orientation for the property grid
     */
    orientation: PropertyGridOrientation;
    /**
     * Implementation of the Layout interface
     */
    layoutChanged: EventEmitter<void>;
    /**
     * Implementation of the Layout interface
     */
    windowBreakpointChanged: EventEmitter<void>;
    private propertyGridResponsiveWindowManager;
    constructor(injector: Injector, layout: Layout);
    stringifyValue(value: any): any;
    getTemplate(item: PropertyGridItemComponent): TemplateRef<PropertyGridItemComponent>;
    ngOnChanges(changes: SimpleChanges): void;
    /**
     * It handles the undefined value won't be updated situation for async property item.
     * Angular issue that the property item value initialized with undefined, if after async time, the value being set is still undefined,
     * Angular will not be able to trigger the value on changed event. Thus we have to manually call to refresh it.
     *
     * @param index The index that needs to hard refresh.
     */
    hardRefreshItem(index: number): void;
    getInternalLinkDescription(item: PropertyGridItemComponent): string;
    getExternalLinkDescription(item: PropertyGridItemComponent): string;
    /**
     * Creates the idBag used by this component to store unique element ids.
     * id values will be assigned be the @see BaseComponent super class.
     */
    protected createIdBag(): MsftSme.StringMap<string>;
    /**
     * Gets the initial host classes to be applied to this element
     */
    protected getInitialHostClasses(): string[];
    static ɵfac: i0.ɵɵFactoryDeclaration<PropertyGridComponent, [null, { optional: true; skipSelf: true; }]>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PropertyGridComponent, "sme-property-grid", never, { "orientation": "orientation"; }, { "layoutChanged": "layoutChanged"; "windowBreakpointChanged": "windowBreakpointChanged"; }, ["items"], never, false, never>;
}
