import { DTODocumentationHierarchyV2 } from "@supernova-studio/client";
import { DocsEntityGroupBehavior } from "../../enums/SDKDocsEntityGroupBehavior";
import { DocsEntityType } from "../../enums/SDKDocsEntityType";
import { DocsEntity, DocsEntityPublishMetadata } from "./SDKDocsEntity";
import { DocsEntityApprovalState } from "./SDKDocsEntityApprovalState";
import { DocsEntityConfiguration } from "./SDKDocsEntityConfiguration";
import { DocsEntityDraftState } from "./SDKDocsEntityDraftState";
import { DocsEntityPage } from "./SDKDocsEntityPage";
export type DocsEntityGroupModel = DTODocumentationHierarchyV2["groups"][number];
export declare class DocsEntityGroup extends DocsEntity {
    /** If true, this is unique within documentation (just one) that contains all top-level objects and is root of the docs tree (root > groups > items > blocks ...) */
    isRoot: boolean;
    /** IDs of items belonging to the documentation group. Can be page or group */
    childrenIds: Array<string>;
    /** References to pages */
    children: Array<DocsEntityGroup | DocsEntityPage>;
    /** Parent group reference */
    parentId: string | null;
    /** Signifies how the group should behave. If set to "tabs", group behaves as "page", but contains multiple tabbed pages inside it. "Group" signifies virtual group used for content structuring */
    groupBehavior: DocsEntityGroupBehavior;
    /** Internal */
    relativeFirstPageUrl: string | null;
    /** Internal */
    deployedFirstPageUrl: string | null;
    constructor(model: DocsEntityGroupModel);
    /** Internal: Modifies object with new paths. Don't use outside SDK environment as it doesn't propagate the data back to source */
    internalOverridePaths(relative: string | null, deployed: string | null): void;
    /** Retrieve relative page path without the associated domain for the first page in the group. Will work even when documentation was not yet deployed */
    relativeDocsPageUrl(): string | null;
    /** Retrieve page url for the first page in the group, if the documentation was already deployed (either default or custom domain) */
    deployedDocsPageUrl(): string | null;
}
/** Lightweight page representation used in multiplayer context type-validated against the full version */
export declare class DocsEntityMultiplayerGroup {
    persistentId: string;
    type: DocsEntityType.group;
    title: string;
    groupBehavior: DocsEntityGroupBehavior;
    childrenIds: Array<string>;
    isRoot: boolean;
    parent: DocsEntityMultiplayerGroup | null;
    draftState: DocsEntityDraftState | null;
    isPrivate: boolean;
    isHidden: boolean;
    publishMetadata: DocsEntityPublishMetadata | null;
    approvalState: DocsEntityApprovalState;
    configuration: DocsEntityConfiguration;
    parentId: string | null;
    constructor(model: DTODocumentationHierarchyV2["groups"][number]);
}
