import type { SerializedDecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js';
import type { DOMConversionMap, DOMExportOutput, ElementFormatType, LexicalNode, NodeKey, Spread } from 'lexical';
import type { CollectionSlug, DataFromCollectionSlug, JsonObject } from 'payload';
import type { JSX } from 'react';
import { DecoratorBlockNode } from '@lexical/react/LexicalDecoratorBlockNode.js';
export type UploadData<TUploadExtraFieldsData extends JsonObject = JsonObject> = {
    [TCollectionSlug in CollectionSlug]: {
        fields: TUploadExtraFieldsData;
        id: string;
        relationTo: TCollectionSlug;
        value: DataFromCollectionSlug<TCollectionSlug> | number | string;
    };
}[CollectionSlug];
export declare function isGoogleDocCheckboxImg(img: HTMLImageElement): boolean;
export type SerializedUploadNode = {
    children?: never;
    type: 'upload';
} & Spread<UploadData, SerializedDecoratorBlockNode>;
export declare class UploadServerNode extends DecoratorBlockNode {
    __data: UploadData;
    constructor({ data, format, key, }: {
        data: UploadData;
        format?: ElementFormatType;
        key?: NodeKey;
    });
    static clone(node: UploadServerNode): UploadServerNode;
    static getType(): string;
    static importDOM(): DOMConversionMap<HTMLImageElement>;
    static importJSON(serializedNode: SerializedUploadNode): UploadServerNode;
    static isInline(): false;
    decorate(): JSX.Element;
    exportDOM(): DOMExportOutput;
    exportJSON(): SerializedUploadNode;
    getData(): UploadData;
    setData(data: UploadData): void;
    updateDOM(): false;
}
export declare function $createUploadServerNode({ data, }: {
    data: Omit<UploadData, 'id'> & Partial<Pick<UploadData, 'id'>>;
}): UploadServerNode;
export declare function $isUploadServerNode(node: LexicalNode | null | undefined): node is UploadServerNode;
//# sourceMappingURL=UploadNode.d.ts.map