import { PropertyValues, TemplateResult } from 'lit';
import type { IApiAnyShape, IApiArrayShape, IApiFileShape, IApiNodeShape, IApiPropertyShape, IApiScalarShape, IApiSchemaShape, IApiShape, IApiTupleShape, IApiUnionShape, IShapeUnion } from '@api-client/core/amf/definitions/Shapes.js';
import { ApiDocumentationBase } from './ApiDocumentationBase.js';
import '../../md/radio/ui-radio.js';
export default class ApiSchemaDocument extends ApiDocumentationBase {
    /**
     * The mime type to use to render the examples.
     * @attribute
     */
    accessor mimeType: string | undefined;
    schemaValue?: IShapeUnion;
    get schema(): IShapeUnion | undefined;
    set schema(value: IShapeUnion | undefined);
    /**
     * Generates examples from the schema properties for the given mime type
     * when examples are not defined in the schema.
     * @attribute
     */
    accessor forceExamples: boolean | undefined;
    /**
     * When set it allows to manipulate the properties.
     * This is to be used with a combination with the `edit` property.
     * @attribute
     */
    accessor editProperties: boolean | undefined;
    /**
     * When set it renders the title with lower emphasis and adding `schema` prefix.
     * @attribute
     */
    accessor schemaTitle: boolean | undefined;
    /**
     * When set it does not render read only items.
     * Read only property is a feature of OAS.
     * @attribute
     */
    accessor noReadOnly: boolean | undefined;
    expandedValue: string[];
    get expanded(): string[];
    selectedUnionsValue: Record<string, string>;
    get selectedUnions(): Record<string, string>;
    propertyDescriptionEditor?: string;
    constructor();
    protected willUpdate(cp: PropertyValues<this>): void;
    processGraph(): Promise<void>;
    /**
     * Queries the store for the schema data, when needed.
     */
    querySchema(): Promise<void>;
    /**
     * The logic to perform after schema is ready.
     * This processes examples for the schema.
     */
    processSchema(): void;
    expandHandler(e: Event): void;
    expandKeydownHandler(e: KeyboardEvent): void;
    /**
     * Toggles an "expanded" state for a property children.
     * @param id Parent property id that has children to toggle visibility of.
     */
    toggleExpandedProperty(id: string): void;
    anyOfSelectedHandler(e: Event): void;
    /**
     * Orders union items so the first is the one that has properties defined inline.
     */
    orderUnion(shapes: IShapeUnion[]): IShapeUnion[];
    render(): TemplateResult;
    /**
     * @returns The template for the schema title.
     */
    titleTemplate(schema: IShapeUnion): TemplateResult | string;
    /**
     * @param schema The shape to render.
     * @returns The template for the schema properties depending on the type
     */
    schemaContentTemplate(schema: IShapeUnion): TemplateResult | string;
    /**
     * @returns The template for the scalar shape.
     */
    scalarShapeTemplate(schema: IApiScalarShape): TemplateResult | string;
    /**
     * @returns The template for the node shape.
     */
    nodeShapeTemplate(schema: IApiNodeShape): TemplateResult | string;
    /**
     * @returns The template for the union shape.
     */
    unionShapeTemplate(schema: IApiUnionShape): TemplateResult | string;
    andUnionItemTemplate(shape: IShapeUnion): TemplateResult;
    /**
     * @returns The template for the "and" union item's title, if inherited from another type.
     */
    inheritanceNameTemplate(shape: IShapeUnion): TemplateResult | string;
    /**
     * @returns The template for the `any of` union.
     */
    anyOfUnionTemplate(schemaId: string, items: IShapeUnion[]): TemplateResult | string;
    /**
     * @param schemaId The parent schema id value
     * @param options The options to render.
     * @returns The template for the union any of selector.
     */
    anyOfOptionsTemplate(schemaId: string, options: {
        id: string;
        label: string;
    }[], selected: string): TemplateResult;
    /**
     * @returns The template for the file shape.
     */
    fileShapeTemplate(schema: IApiFileShape): TemplateResult | string;
    /**
     * @returns The template for the schema shape.
     */
    schemaShapeTemplate(schema: IApiSchemaShape): TemplateResult | string;
    /**
     * @returns The template for the array shape.
     */
    arrayShapeTemplate(schema: IApiArrayShape): TemplateResult | string;
    /**
     * @returns The template for the tuple shape.
     */
    tupleShapeTemplate(schema: IApiTupleShape): TemplateResult | string;
    /**
     * @returns The template for the Any shape.
     */
    anyShapeTemplate(schema: IApiAnyShape): TemplateResult | string;
    /**
     * @returns The template for the Any shape.
     */
    nilShapeTemplate(schema: IApiShape): TemplateResult | string;
    /**
     * @returns The template for the schema property item.
     */
    shapePropertyTemplate(schema: IApiPropertyShape): TemplateResult | string;
    /**
     * @returns THe template for the line decorator in front of the property name.
     */
    propertyDecoratorTemplate(isComplex: boolean, expanded: boolean, schemaId: string): TemplateResult;
    /**
     * @returns The template for the schema property item that has no range information.
     */
    shapePropertyWithoutRangeTemplate(schema: IApiPropertyShape): TemplateResult;
    propertyDescriptionTemplate(schema: IApiPropertyShape): TemplateResult | string;
}
//# sourceMappingURL=ApiSchemaDocument.element.d.ts.map