import { NavigationData, NavigationNode, NavigationResult, NodeId, NavigationPosition, MoveNavigationNodeResult, MovePageCollectionResult, PageId, PageNavigationData, PageNavigationNode, NavigationDataType, NavigationNodeQuery, MovePageCollectionValidationResult } from "../models";
import { HttpClient } from "@omnia/fx";
import { GuidValue } from "@omnia/fx-models";
export declare class NavigationService {
protected httpClient: HttpClient;
protected readonly baseUrl = "api/navigation";
/**
* ///
/// Creates a new navigation node of a defined type
/// Inserted under a supplied parent
/// Sorted between siblings, a combination of after/before
///
///
/// Sort example
/// Last:
/// after:Null
/// before:Null
/// Result: last
///
/// First:
/// after:Null
/// before:Current first
///
/// Between:
/// after:Node on Index7
/// before:Node on Index 8
/// result: Between, new node will be child index8, previous 8 will be index 9
///
/// Throws SortException if the current state does not match after/before supplied, i.e. concurrent change etc.
/// Throws Notfound exception if any of the nodes does not exist
///
/// A type of NavigationData
/// A navigation node of a certain type,
/// e.g. / or another custom type inheriting from
/// Null for root, or the parent under which to place the new node
*/
create: (nodeData: T, position: NavigationPosition) => Promise>;
/**
* Updates the data part of a navigation node i.e. NavigationNode.navigationData
**/
updateNodeData: >(node: T) => Promise;
move: >(nodeToMove: T, newPosition: NavigationPosition) => Promise;
movePageCollection: (pageCollectionId: number, targetPublishingAppId: string) => Promise;
validateMovingPageCollection: (pageCollectionId: number, targetPublishingAppId: string) => Promise;
getParentNodes: >(nodeToGetParentsFor: T, nodeTypes?: NavigationDataType) => Promise>>;
getChildNodes: >(nodeToGetParentsFor: T, nodeTypes?: NavigationDataType, depth?: number, forceFromPublishingAppId?: string) => Promise>>;
getMegamenuChildNodes: >(nodeToGetParentsFor: T, nodeTypes?: NavigationDataType, depth?: number, forceFromPublishingAppId?: string) => Promise>>;
getMegamenusChildNodes: >(nodesToGetParentsFor: NavigationNodeQuery[], nodeTypes?: NavigationDataType) => Promise>>;
getUnavailableDirectChildNodes: >(nodeToGet: T) => Promise>>;
getNodesByIds: (nodeIds: Array) => Promise<{
[nodeId: number]: NavigationNode;
}>;
getNavigationByNode: (node: NavigationNode, nodeTypes?: NavigationDataType) => Promise;
getNavigationByPath: (path: string, nodeTypes?: NavigationDataType, appInstanceId?: string) => Promise;
getNavigationByUrl: (url: string, nodeTypes?: NavigationDataType) => Promise;
getNodesByPageIds: (...args: Array) => Promise<{
[pageId: number]: PageNavigationNode[];
}>;
checkUrlSegmentExists: (appInstanceId: GuidValue, parentNavigationNode: NavigationNode, urlSegment: string) => Promise;
}