import type { Slot } from '@blockeditor/global/utils';
import { type DeltaInsert } from '@blockeditor/inline';
import { ShadowlessElement } from '@blockeditor/lit';
import type { Page } from '@blockeditor/store';
import type { AffineTextAttributes } from '../../affine-inline-specs.js';
import type { ReferenceNodeConfig } from './reference-config.js';
export type RefNodeSlots = {
    pageLinkClicked: Slot<{
        pageId: string;
        blockId?: string;
    }>;
    tagClicked: Slot<{
        tagId: string;
    }>;
};
declare const AffineReference_base: typeof ShadowlessElement & import("@blockeditor/global/utils").Constructor<import("@blockeditor/lit").DisposableClass>;
export declare class AffineReference extends AffineReference_base {
    static styles: import("lit").CSSResult;
    delta: DeltaInsert<AffineTextAttributes>;
    selected: boolean;
    config: ReferenceNodeConfig;
    private _refMeta?;
    private _refAttribute;
    get inlineEditor(): import("@blockeditor/inline").InlineEditor<AffineTextAttributes>;
    get selfInlineRange(): import("@blockeditor/inline").InlineRange;
    get page(): Page;
    get customIcon(): ((reference: AffineReference) => import("lit").TemplateResult) | null;
    get customTitle(): ((reference: AffineReference) => string) | null;
    get customContent(): ((reference: AffineReference) => import("lit").TemplateResult) | null;
    connectedCallback(): void;
    private _updateRefMeta;
    private _onClick;
    private _whenHover;
    render(): import("lit").TemplateResult<1>;
}
declare global {
    interface HTMLElementTagNameMap {
        'affine-reference': AffineReference;
    }
}
export {};
//# sourceMappingURL=reference-node.d.ts.map