/*!
 * @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 { PaginationModel } from '@alfresco/adf-core';
import { AlfrescoApiService } from '../../services/alfresco-api.service';
import { DeletedNodesPaging, SharedLinkPaging, FavoritePaging, SiteMemberPaging, PeopleApi, SitesApi, SearchApi, FavoritesApi, SharedlinksApi, TrashcanApi, NodesApi, SitePaging, ResultSetPaging } from '@alfresco/js-api';
import { Observable } from 'rxjs';
import * as i0 from "@angular/core";
export declare class CustomResourcesService {
    private apiService;
    private _peopleApi;
    get peopleApi(): PeopleApi;
    private _sitesApi;
    get sitesApi(): SitesApi;
    private _trashcanApi;
    get trashcanApi(): TrashcanApi;
    private _searchApi;
    get searchApi(): SearchApi;
    private _sharedLinksApi;
    get sharedLinksApi(): SharedlinksApi;
    private _favoritesApi;
    get favoritesApi(): FavoritesApi;
    private _nodesApi;
    get nodesApi(): NodesApi;
    constructor(apiService: AlfrescoApiService);
    /**
     * Gets files recently accessed by a user.
     *
     * @param personId ID of the user
     * @param pagination Specifies how to paginate the results
     * @param filters Specifies additional filters to apply (joined with **AND**)
     * @returns List of nodes for the recently used files
     */
    getRecentFiles(personId: string, pagination: PaginationModel, filters?: string[]): Observable<ResultSetPaging>;
    /**
     * Gets favorite files for the current user.
     *
     * @param pagination Specifies how to paginate the results
     * @param includeFields List of data field names to include in the results
     * @param where A string to restrict the returned objects by using a predicate
     * @returns List of favorite files
     */
    loadFavorites(pagination: PaginationModel, includeFields?: string[], where?: string): Observable<FavoritePaging>;
    /**
     * Gets sites that the current user is a member of.
     *
     * @param pagination Specifies how to paginate the results
     * @param where A string to restrict the returned objects by using a predicate
     * @returns List of sites
     */
    loadMemberSites(pagination: PaginationModel, where?: string): Observable<SiteMemberPaging>;
    /**
     * Gets all sites in the repository.
     *
     * @param pagination Specifies how to paginate the results
     * @param where A string to restrict the returned objects by using a predicate
     * @returns List of sites
     */
    loadSites(pagination: PaginationModel, where?: string): Observable<SitePaging>;
    /**
     * Gets all items currently in the trash.
     *
     * @param pagination Specifies how to paginate the results
     * @param includeFields List of data field names to include in the results
     * @returns List of deleted items
     */
    loadTrashcan(pagination: PaginationModel, includeFields?: string[]): Observable<DeletedNodesPaging>;
    /**
     * Gets shared links for the current user.
     *
     * @param pagination Specifies how to paginate the results
     * @param includeFields List of data field names to include in the results
     * @param where A string to restrict the returned objects by using a predicate
     * @returns List of shared links
     */
    loadSharedLinks(pagination: PaginationModel, includeFields?: string[], where?: string): Observable<SharedLinkPaging>;
    /**
     * Is the folder ID one of the well-known aliases?
     *
     * @param folderId Folder ID name to check
     * @returns True if the ID is a well-known name, false otherwise
     */
    isCustomSource(folderId: string): boolean;
    /**
     * Is the folder ID a "-my", "-root-", or "-shared-" alias?
     *
     * @param folderId Folder ID name to check
     * @returns True if the ID is one of the supported sources, false otherwise
     */
    isSupportedSource(folderId: string): boolean;
    /**
     * Gets a folder's contents.
     *
     * @param nodeId ID of the target folder node
     * @param pagination Specifies how to paginate the results
     * @param includeFields List of data field names to include in the results
     * @param where  Filters the Node list using the *where* condition of the REST API (for example, isFolder=true). See the REST API documentation for more information.
     * @returns List of items contained in the folder
     */
    loadFolderByNodeId(nodeId: string, pagination: PaginationModel, includeFields?: string[], where?: string): any;
    /**
     * Gets the contents of one of the well-known aliases in the form of node ID strings.
     *
     * @param nodeId ID of the target folder node
     * @param pagination Specifies how to paginate the results
     * @returns List of node IDs
     */
    getCorrespondingNodeIds(nodeId: string, pagination?: PaginationModel): Observable<string[]>;
    /**
     * Chooses the correct ID for a node entry.
     *
     * @param node Node object
     * @param nodeId ID of the node object
     * @returns ID value
     */
    getIdFromEntry(node: any, nodeId: string): string;
    /**
     * Does the well-known alias have a corresponding node ID?
     *
     * @param nodeId Node to check
     * @returns True if the alias has a corresponding node ID, false otherwise
     */
    hasCorrespondingNodeIds(nodeId: string): boolean;
    private getIncludesFields;
    static ɵfac: i0.ɵɵFactoryDeclaration<CustomResourcesService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CustomResourcesService>;
}
