import { FDocumentImage } from '@univerjs/docs-drawing/facade';
import * as ThreadComment from '@univerjs/thread-comment';
import * as ElementComment from './element-comment';
export interface IFDocumentImageThreadCommentMixin {
    /**
     * Creates a comment anchored to this document image.
     * @param content Plain text or a Univer document body for rich comment content.
     * @param options Optional stable IDs, author, attachments, and creation time.
     * @returns `true` when the create command succeeds; otherwise, `false`.
     * @throws {TypeError} If the content is empty.
     * @example
     * ```ts
     * const image = univerAPI.getActiveDocument()?.getImages()[0];
     * await image?.createCommentAsync('Add alternative text.');
     * ```
     */
    createCommentAsync(content: ThreadComment.ThreadCommentContent, options?: ElementComment.IFloatingElementCommentCreateOptions): Promise<boolean>;
    /**
     * Returns locally loaded comments anchored to this image's drawing ID.
     * @returns Matching comment threads in the current document.
     * @example
     * ```ts
     * const image = univerAPI.getActiveDocument()?.getImages()[0];
     * console.log(image?.getComments().length ?? 0);
     * ```
     */
    getComments(): ThreadComment.IFacadeThreadCommentInfo[];
    /**
     * Synchronizes known threads and returns comments anchored to this image's drawing ID.
     * @returns A promise resolving to matching synchronized comment threads.
     * @example
     * ```ts
     * const image = univerAPI.getActiveDocument()?.getImages()[0];
     * const comments = image ? await image.listCommentsAsync() : [];
     * console.log(comments.length);
     * ```
     */
    listCommentsAsync(): Promise<ThreadComment.IFacadeThreadCommentInfo[]>;
}
export declare class FDocumentImageThreadCommentMixin extends FDocumentImage implements IFDocumentImageThreadCommentMixin {
    /** @inheritdoc */
    createCommentAsync(content: ThreadComment.ThreadCommentContent, options?: ElementComment.IFloatingElementCommentCreateOptions): Promise<boolean>;
    /** @inheritdoc */
    getComments(): ThreadComment.IFacadeThreadCommentInfo[];
    /** @inheritdoc */
    listCommentsAsync(): Promise<ThreadComment.IFacadeThreadCommentInfo[]>;
    private _commentTarget;
}
declare module '@univerjs/docs-drawing/facade' {
    interface FDocumentImage extends IFDocumentImageThreadCommentMixin {
    }
}
