import { BaseDoEntity, BookmarkTableRowIdentifierDo, ButtonTile, ChildModelOf, Column, Constructor, DoTypeResolver, EnumObject, Event, EventHandler, EventListener, EventMapOf, EventModel, EventSupport, Form, HtmlComponent, InitModelOf, Menu, MenuOwner, ObjectOrType, ObjectWithUuid, Outline, PageDetailMenuContributor, PageEventMap, PageModel, PropertyChangeEvent, RequiredUnlessNotSubclass, SomeRequired, Table, TableRow, TableRowClickEvent, TreeNode, UuidPathOptions } from '../../../index';
/**
* This class is used differently in online and JS-only case. In the online case we only have instances
* of Page in an outline. The server sets the property nodeType which is used to distinct
* between pages with tables and pages with nodes in some cases. In the JS only case, Page is an abstract
* class and is never instantiated directly, instead we always use subclasses of PageWithTable or PageWithNodes.
* Implementations of these classes contain code which loads table data or child nodes.
*/
export declare class Page extends TreeNode implements PageModel, ObjectWithUuid {
initModel: SomeRequired & PageParamRequiredIfDeclared;
model: PageModel;
eventMap: PageEventMap;
self: Page;
parent: Outline;
childNodes: Page[];
parentNode: Page;
uuid: string;
pageParam: PageParamDo;
/**
* This property is set by the server, see: JsonOutline#putNodeType.
*/
nodeType: NodeType;
compactRoot: boolean;
detailTable: Table;
detailTableVisible: boolean;
detailForm: Form;
detailFormVisible: boolean;
detailFormVisibleByUi: boolean;
navigateButtonsVisible: boolean;
tableStatusVisible: boolean;
htmlComp: HtmlComponent;
/**
* True to select the page linked with the selected row when the row was selected. May be useful on touch devices.
*/
drillDownOnRowClick: boolean;
overviewText: string;
overviewIconId: string;
overviewHtmlEnabled: boolean;
showTileOverview: boolean;
inheritMenusFromParentTablePage: boolean;
detailMenuContributors: PageDetailMenuContributor[];
row: TableRow;
tile: ButtonTile;
events: EventSupport;
pageChanging: number;
userPreferenceContext: string;
modelClass: string;
classId: string;
protected _tableFilterHandler: EventHandler>;
protected _tableRowClickHandler: EventHandler;
protected _detailTableModel: ChildModelOf;
/** @internal */
_detailFormModel: ChildModelOf