import { FileFolderTypeWithContent, FolderRootType, IAddFolderRequest, IAddFolderResponse, IAppSettingsResponse, ICheckUpdatesRequest, ICheckUpdatesResponse, IDropFileRequest, IDropFolderRequest, IFileInfoResponse, IGetFileInfo, IGetFileRequest, IGetFolderRequest, IGetFolderResponse, IInstallUpdatesRequest, IRenameFileRequest, IRenameFileResponse, IRenameFolderRequest, IRenameFolderResponse, ISetFileContentRequest, ISharedCSSResponse, ISavedConditionsResponse, ISharedDatasourcesResponse, RemoteDebuggerMode, IUserPrivilegesResponse } from '../types/api';
import { IMonacoThemeResponse } from '../types/code-editor';
import { IComponentTemplate } from '../types/webform-editor';
import { IGetSharedResourceRequest } from './shared';

/**
 * Check updates
 * @param request The request
 */
export declare function checkUpdates(request: ICheckUpdatesRequest): Promise<ICheckUpdatesResponse>;
/**
 * Install updates
 * @param request The request
 */
export declare function installUpdates(request: IInstallUpdatesRequest): Promise<IInstallUpdatesRequest>;
export declare const getDefaultAppSettings: () => {
    projectOpened: boolean;
    remoteDebuggerMode: RemoteDebuggerMode;
    baseUrl: string;
    qodly: boolean;
    urls: {
        renderer: string;
        debugger: string;
        lsp: string;
    };
    isRestActive: boolean;
};
/**
 * Get current application settings
 **/
export declare function getAppSettings(): Promise<IAppSettingsResponse>;
/**
 * Get folder content
 * @param request The request
 */
export declare function getFolder(request: IGetFolderRequest): Promise<IGetFolderResponse>;
/**
 * Get folder content
 * @param request The request
 */
export declare function getFolders(...roots: FolderRootType[]): Promise<{
    name: string;
    type: FileFolderTypeWithContent;
    date: string;
    path: string;
}[]>;
/**
 * Get a webform
 * @param request The request
 */
export declare function getWebForm(webform: string, options?: Partial<{
    sanitize: boolean;
}>): Promise<any>;
/**
 * Get file content
 * @param request The request
 */
export declare function getFile<T = any>(request: IGetFileRequest): Promise<{
    content: any;
    name: string;
    date: string;
    type: FileFolderTypeWithContent;
}>;
/**
 * Rename a file
 * @param request The request
 */
export declare function renameFile(request: IRenameFileRequest): Promise<IRenameFileResponse>;
/**
 * Drop a file
 * @param request The request
 */
export declare function dropFile(request: IDropFileRequest): Promise<boolean>;
/**
 * Add folder
 * @param request The request
 */
export declare function addFolder(request: IAddFolderRequest): Promise<IAddFolderResponse>;
/**
 * Rename a folder
 * @param request The request
 */
export declare function renameFolder(request: IRenameFolderRequest): Promise<IRenameFolderResponse>;
/**
 * Drop Folder
 * @param request The request
 */
export declare function dropFolder(request: IDropFolderRequest): Promise<boolean>;
export declare function getFilesInfo(...files: IGetFileInfo[]): Promise<IFileInfoResponse>;
export declare function login(token: string): Promise<boolean>;
export declare function getCatalog(): Promise<datasources.ICatalog>;
interface IGetFileContentInfo {
    name: string;
    path?: string;
    root?: 'root' | 'shared' | 'method';
    asText?: boolean;
}
export interface IFileContentResponse<T = string> {
    name: string;
    date: string;
    content: T;
}
export declare function getFileContent<T = string>({ name, path, root, asText, }: IGetFileContentInfo): Promise<IFileContentResponse<T>>;
export interface ISetFileContentResponse {
    name: string;
    date: string;
    type: FileFolderTypeWithContent;
    size: number;
}
export declare function getSharedDatasources(params?: Pick<IGetSharedResourceRequest, 'createIfNotExists'>): Promise<ISharedDatasourcesResponse>;
export declare function getSharedCSS(params?: Pick<IGetSharedResourceRequest, 'createIfNotExists'>): Promise<ISharedCSSResponse>;
export declare function getSavedConditions(params?: Pick<IGetSharedResourceRequest, 'createIfNotExists'>): Promise<ISavedConditionsResponse>;
export declare function getUserPrivileges(): Promise<IUserPrivilegesResponse>;
export declare function getMonacoTheme(): Promise<IMonacoThemeResponse>;
export declare const setSharedSources: (datasources: {
    [key: string]: datasources.ICreateDataSource[];
}) => Promise<ISharedDatasourcesResponse>;
export declare const setFileContent: (payload: Pick<ISetFileContentRequest, 'content' | 'name'> & Partial<Pick<ISetFileContentRequest, 'asText' | 'path'>>) => Promise<{
    type: FileFolderTypeWithContent;
    size: number;
    name: string;
    date: string;
}>;
export declare const setCraftedComponents: (crafts: IComponentTemplate[]) => Promise<ISetFileContentResponse>;
export {};
