/*!
 * @license
 * Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
import { EventEmitter } from '@angular/core';
import { Node, NodeEntry } from '@alfresco/js-api';
import { Subject } from 'rxjs';
import { DownloadService } from '@alfresco/adf-core';
import { MatDialog } from '@angular/material/dialog';
import { ContentService } from '../../common/services/content.service';
import { AlfrescoApiService } from '../../services/alfresco-api.service';
import { DocumentListService } from './document-list.service';
import { ContentNodeDialogService } from '../../content-node-selector/content-node-dialog.service';
import * as i0 from "@angular/core";
export declare class NodeActionsService {
    private contentDialogService;
    dialogRef: MatDialog;
    content: ContentService;
    private documentListService?;
    private apiService?;
    private dialog?;
    private downloadService?;
    error: EventEmitter<any>;
    constructor(contentDialogService: ContentNodeDialogService, dialogRef: MatDialog, content: ContentService, documentListService?: DocumentListService, apiService?: AlfrescoApiService, dialog?: MatDialog, downloadService?: DownloadService);
    downloadNode(node: NodeEntry): void;
    /**
     * Copy content node
     *
     * @param contentEntry node to copy
     * @param permission permission which is needed to apply the action
     * @returns operation result
     */
    copyContent(contentEntry: Node, permission?: string): Subject<string>;
    /**
     * Copy folder node
     *
     * @param contentEntry node to copy
     * @param permission permission which is needed to apply the action
     * @returns operation result
     */
    copyFolder(contentEntry: Node, permission?: string): Subject<string>;
    /**
     * Move content node
     *
     * @param contentEntry node to move
     * @param permission permission which is needed to apply the action
     * @returns operation result
     */
    moveContent(contentEntry: Node, permission?: string): Subject<string>;
    /**
     * Move folder node
     *
     * @param contentEntry node to move
     * @param permission permission which is needed to apply the action
     * @returns operation result
     */
    moveFolder(contentEntry: Node, permission?: string): Subject<string>;
    /**
     * General method for performing the given operation (copy|move)
     *
     * @param action the action to perform (copy|move)
     * @param type type of the content (content|folder)
     * @param contentEntry the contentEntry which has to have the action performed on
     * @param permission permission which is needed to apply the action
     * @returns operation result
     */
    private doFileOperation;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeActionsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NodeActionsService>;
}
