import { type TemplateResult, nothing } from 'lit';
import { ApiEditor } from './ApiEditor.js';
import type { ApiModel, DomainEntity, ExposedEntity } from '@api-client/core/browser.js';
type ActionKind = 'list' | 'read' | 'create' | 'update' | 'delete' | 'search';
/**
 * An entity editor displaying information about an exposed entity
 * in the API model, including its domain entity.
 *
 * @fires close - Fired when the user clicks the close button in the header.
 */
export default class ApiModelingEntityEditor extends ApiEditor {
    /**
     * Computed exposed entity being edited.
     */
    accessor exposed: ExposedEntity | undefined;
    /**
     * Computed domain entity that corresponds to the exposed entity being edited.
     */
    accessor entity: DomainEntity | undefined;
    /**
     * When true, shows a close button in the editor header.
     * @attribute
     */
    accessor showCloseButton: boolean;
    protected setupModel(model?: ApiModel, domainKey?: string): void | Promise<void>;
    protected handleCloseButtonClick(): void;
    protected handleCollectionPathChange(e: Event): void;
    protected handleResourcePathChange(e: Event): void;
    protected handleActionToggle(e: Event): void;
    removeAction(kind: ActionKind): void;
    addAction(kind: ActionKind): void;
    protected render(): TemplateResult | typeof nothing;
    /**
     * Renders a template of the editor header.
     * @param entity The related domain entity.
     */
    protected renderHeader(entity: DomainEntity): TemplateResult;
    /**
     * Renders the close button if the `showCloseButton` flag is set.
     */
    protected renderCloseButton(): TemplateResult | typeof nothing;
    protected renderEndpointsConfiguration(exposed: ExposedEntity): TemplateResult;
    protected renderCollectionPathInput(exposed: ExposedEntity): TemplateResult;
    protected renderResourcePathInput(exposed: ExposedEntity): TemplateResult;
    protected renderActionsSection(exposed: ExposedEntity): TemplateResult;
    protected renderCollectionActionsSection(exposed: ExposedEntity): TemplateResult | typeof nothing;
    protected renderResourceActionsSection(exposed: ExposedEntity): TemplateResult;
}
export {};
//# sourceMappingURL=ApiModelingEntityEditor.d.ts.map