import { TemplateResult } from 'lit';
import { IApiCustomDomainProperty, AmfShapes, ApiDefinitions } from '@api-client/core/build/browser.js';
import { SchemaExample } from '../../amf/types.js';
import ApiElement from '../ApiElement.js';
import '../../define/amf/api-annotation-document.js';
import '../../define/highlight/marked-highlight.js';
import '../../define/ui/ui-icon.js';
import '../../define/ui/ui-button.js';
import '../../define/ui/ui-collapse.js';
/**
 * A base class for the documentation components with common templates and functions.
 */
export declare class ApiDocumentationBase extends ApiElement {
    protected domainIdValue?: string;
    /**
     * The domain id of the object to render.
     * @attribute
     */
    get domainId(): string | undefined;
    set domainId(value: string | undefined);
    /**
     * The timeout after which the `queryGraph()` function is called
     * in the debouncer.
     * @attribute
     */
    queryDebouncerTimeout?: number;
    protected examplesValue?: SchemaExample[];
    protected debounceValue?: any;
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    /**
     * Handler for the event dispatched by the store when the graph model change.
     */
    protected graphChangeHandler(): void;
    /**
     * Calls the `queryGraph()` function in a debouncer.
     */
    protected processDebounce(): void;
    /**
     * The main function to use to process the AMF model.
     * To be implemented by the child classes.
     */
    processGraph(): void | Promise<void>;
    /**
     * At current state there's no way to tell where to navigate when relative
     * link is clicked. To prevent 404 anchors this prevents any relative link click.
     */
    clickHandler(e: Event): void;
    /**
     * A handler for the section toggle button click.
     */
    sectionToggleClickHandler(e: Event): void;
    /**
     * @param examples The list of examples to evaluate
     * @param mediaType The media type to use with examples processing.
     */
    protected evaluateExamples(examples: AmfShapes.IApiDataExample[], mediaType: string): SchemaExample[];
    /**
     * @param example The example to evaluate
     * @param mediaType The media type to use with examples processing.
     */
    protected evaluateExample(example: AmfShapes.IApiDataExample, mediaType: string): SchemaExample;
    /**
     * @returns The template for the section toggle button
     */
    protected sectionToggleTemplate(ctrlProperty: string): TemplateResult | string;
    /**
     * @param label The section label.
     * @param openedProperty The name of the element property to be toggled when interacting with the toggle button.
     * @param content The content to render.
     * @returns The template for a toggle section with a content.
     */
    protected paramsSectionTemplate(label: string, openedProperty: string, content: TemplateResult | (TemplateResult | string)[], opts?: ({
        innerSection?: boolean;
    })): TemplateResult;
    /**
     * @param model The parameter to render.
     * @param dataName Optional data-name for this parameter
     * @returns The template for the schema item document
     */
    protected schemaItemTemplate(model: ApiDefinitions.IApiParameter, dataName?: string): TemplateResult;
    /**
     * @param description The description to render.
     * @returns The template for the markdown description.
     */
    protected descriptionTemplate(description?: string): TemplateResult | string;
    /**
     * @returns The template for the custom domain properties
     */
    protected customDomainPropertiesTemplate(customDomainProperties?: IApiCustomDomainProperty[]): TemplateResult | string;
    /**
     * @returns The template for the examples section.
     */
    protected examplesTemplate(): TemplateResult | string;
    /**
     * @returns The template for a single example
     */
    protected exampleTemplate(item: SchemaExample): TemplateResult | string;
}
//# sourceMappingURL=ApiDocumentationBase.d.ts.map