import { LocalizationService } from "./LocalizationService";
import { AjaxService } from "./AjaxService";
import { SecurityService } from "./SecurityService";
import { ControlEditModeManagementService } from "./ControlEditModeManagementService";
import { IGlue } from "../../../models";
export declare class GlueService {
    private ajaxService;
    private controlEditModeManagementService;
    private localizationService;
    private securityService;
    constructor(ajaxService: AjaxService, controlEditModeManagementService: ControlEditModeManagementService, localizationService: LocalizationService, securityService: SecurityService);
    isLayoutBuilderInDisplayMode(): boolean;
    getLayoutTemplate: (templateId: any, callback: (n: IGlue.ILayoutTemplate) => void) => void;
    addOrUpdateLayout: (layout: IGlue.ILayoutTemplate, callback: (n: IGlue.ILayoutTemplate) => void) => void;
    updateLayoutTitle: (templateid: string, title: string, callback: () => void) => void;
    deleteLayout: (layout: IGlue.ILayoutTemplate, callback: (n: IGlue.IGlueResourceOperationResult) => void) => void;
    deleteStaticControlsConfiguration: (controls: {
        scope: string;
        instanceId: string;
    }[], callback: () => void) => void;
    getAllTemplates: (includeNeverPublished: boolean, callback: (n: IGlue.ILayoutTemplate[]) => void) => void;
    addOrUpdateResource: (glueResource: IGlue.IGlueResource, callback: (n: string) => void) => void;
    addResourceVersion: (id: string, majorVersion: IGlue.IVersionIdentifier, content: any, callback: (n: IGlue.IGlueResourceVersionResult) => void) => void;
    hasEditPermissionOnGlueLayoutFolder: () => Promise<boolean>;
    getResource: (id: string, includeVersions: boolean, includeVersionContent: boolean, callback: (n: IGlue.IGlueResource) => void) => void;
    publishResource: (id: string, clearScope: boolean, clearMeta: boolean, callback: (n: IGlue.IGlueResourceOperationResult) => void) => void;
    undoResource: (id: string, callback: (n: IGlue.IGlueResourceOperationResult) => void) => void;
    getResourceVersion: (id: string, majorVersion: number, minorVersion: number, callback: (n: IGlue.IGlueResourceVersionResult) => void) => void;
    getLatestResourceVersion: (id: string, callback: (n: IGlue.IGlueResourceVersion) => void) => void;
    private deserializeData;
    getGlueLayoutConfiguration: (siteUrl: string, callback: (n: IGlue.ILayoutTemplate[]) => void) => void;
    getGlueLayoutMajorVersions: (layoutName: string, callback: (n: IGlue.IVersionIdentifier[]) => void) => void;
    getGlueLayoutByVersion: (layoutId: string, versionLabel: number, callback: (n: IGlue.IGlueResourceVersion) => void) => void;
    restoreGlueLayoutVersion: (layoutName: string, versionLabel: number, callback: (isCheckoutByOtherUser: boolean, n: IGlue.IGlueResourceVersion) => void) => void;
    takeControl: (pageId: string, pageUrl: string, callback: () => void) => void;
    takeLayoutControl: (pageId: string, callback: () => void) => void;
    validateResource: (resourceId: string, callback: (isCheckOutByCurrentUser: boolean) => void) => void;
}
