import '../_common/components/rich-text/rich-text.js';
import './components/code-option.js';
import './components/lang-list.js';
import { BlockElement } from '@blockeditor/lit';
import { type TemplateResult } from 'lit';
import { z } from 'zod';
import type { CodeBlockModel, HighlightOptionsGetter } from './code-model.js';
export declare class CodeBlockComponent extends BlockElement<CodeBlockModel> {
    static styles: import("lit").CSSResult;
    private _wrap;
    private _langButton;
    private _langListAbortController?;
    private get _showLangList();
    get readonly(): boolean;
    highlightOptionsGetter: HighlightOptionsGetter;
    readonly attributesSchema: z.ZodObject<{}, "strip", z.ZodTypeAny, {}, {}>;
    readonly getAttributeRenderer: () => import("@blockeditor/inline").AttributeRenderer;
    private _richTextResizeObserver;
    private _perviousLanguage;
    private _highlighter;
    private _startHighlight;
    private _inlineRangeProvider;
    get inlineEditor(): import("@blockeditor/inline").InlineEditor<{
        bold?: true | null | undefined;
        italic?: true | null | undefined;
        underline?: true | null | undefined;
        strike?: true | null | undefined;
        code?: true | null | undefined;
        link?: string | null | undefined;
    }>;
    private _richTextElement?;
    private _whenHover;
    getUpdateComplete(): Promise<boolean>;
    connectedCallback(): void;
    disconnectedCallback(): void;
    updated(): void;
    setHighlightOptionsGetter(fn: HighlightOptionsGetter): void;
    setLang(lang: string | null): void;
    private _onClickLangBtn;
    private _curLanguageButtonTemplate;
    private _updateLineNumbers;
    render(): TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'affine-code': CodeBlockComponent;
    }
}
//# sourceMappingURL=code-block.d.ts.map