import Model, { ModelData } from './model'; import { TopicType } from '../common/constants/models'; import { StyleData } from './style'; import { StyleKey } from '../common/constants/styles'; import Sheet from './sheet'; export interface TopicData extends ModelData { title: string; structureClass?: string; children?: { [type: string]: Array; }; customWidth?: string; style?: StyleData; extensions?: Array; } export interface ExtensionData { provider: string; content: string | [object]; } export declare function parseTopic(data: TopicData, sheet: Sheet): Topic; export default class Topic extends Model { type: TopicType; private readonly _data; private _children; private _extensionMap; constructor(data: TopicData); get title(): string; get customWidth(): number; get structureClass(): string; addSubtopic(subtopic: Topic, options?: { type?: TopicType; }): void; private _addSubtopic; getChildrenByType(type: TopicType): Array; getStyleValue(key: StyleKey): any; getUnbalancedInfo(): { rightSideCount: number; }; }