import { FileChild } from '../../file-child';
import { Relationships } from '../../relationships';
import { IContext, IXmlableObject, XmlComponent } from '../../xml-components';
export type ICommentOptions = {
    readonly id: number;
    readonly children: readonly FileChild[];
    readonly initials?: string;
    readonly author?: string;
    readonly date?: Date;
    readonly parentId?: number;
    readonly resolved?: boolean;
};
export type ICommentsOptions = {
    readonly children: readonly ICommentOptions[];
};
export declare class CommentRangeStart extends XmlComponent {
    constructor(id: number);
}
export declare class CommentRangeEnd extends XmlComponent {
    constructor(id: number);
}
export declare class CommentReference extends XmlComponent {
    constructor(id: number);
}
export declare class Comment extends XmlComponent {
    private readonly paraId?;
    constructor({ id, initials, author, date, children }: ICommentOptions, paraId?: string);
    prepForXml(context: IContext): IXmlableObject | undefined;
}
export type ICommentThreadData = {
    readonly paraId: string;
    readonly parentParaId?: string;
    readonly done?: boolean;
};
export declare const commentIdToParaId: (id: number) => string;
export declare class Comments extends XmlComponent {
    private readonly relationships;
    private readonly threadData?;
    constructor({ children }: ICommentsOptions);
    get Relationships(): Relationships;
    get ThreadData(): readonly ICommentThreadData[] | undefined;
}
