import { TemplateResult, nothing } from 'lit';
import { AmfShapes, IApiCustomDomainProperty, IApiDomainProperty } from '@api-client/core/build/browser.js';
import ApiElement from '../ApiElement.js';
import '../../define/ui/ui-icon.js';
/**
 * An element to render annotations (also known as custom properties)
 * from AMF model.
 *
 * Annotations are part of RAML language and API console supports it.
 * The element looks for annotations in model and renders them.
 */
export default class ApiAnnotationDocument extends ApiElement {
    protected shapeValue: IApiDomainProperty | undefined;
    /**
     * Serialized with `ApiSerializer` API domain model.
     * This is to be used instead of `shape`.
     */
    get domainModel(): IApiDomainProperty | undefined;
    set domainModel(value: IApiDomainProperty | undefined);
    protected propertiesValue: IApiCustomDomainProperty[] | undefined;
    /**
     * @returns `true` if any custom property has been found.
     */
    get hasCustomProperties(): boolean;
    /**
     * List of custom properties in the shape.
     */
    get customProperties(): IApiCustomDomainProperty[] | undefined;
    set customProperties(value: IApiCustomDomainProperty[] | undefined);
    /**
     * Called when the shape property change.
     */
    protected processShape(): void;
    protected processVisibility(): void;
    protected scalarValue(scalar: AmfShapes.IApiScalarNode): string | number | boolean;
    render(): TemplateResult | string;
    /**
     * @returns The template for the custom property.
     */
    protected renderProperty(prop: IApiCustomDomainProperty): TemplateResult | typeof nothing;
    /**
     * @param name The annotation name
     * @param content The content tp render.
     * @returns The template for the custom property.
     */
    protected renderAnnotationWrapper(name: string, content: TemplateResult | (TemplateResult | string)[] | string): TemplateResult;
    /**
     * @returns The template for the custom property.
     */
    protected renderScalar(name: string, scalar: AmfShapes.IApiScalarNode): TemplateResult;
    /**
     * @returns The template for the custom property.
     */
    protected renderObject(name: string, object: AmfShapes.IApiObjectNode): TemplateResult;
    /**
     * @returns The template for the custom property.
     */
    protected renderObjectScalarProperty(name: string, scalar: AmfShapes.IApiScalarNode): TemplateResult;
}
//# sourceMappingURL=ApiAnnotationDocument.element.d.ts.map