/*!
* Copyright © 2005-2025 Hyland Software, Inc. and its affiliates. All rights reserved.
*
* Alfresco Example Content Application
*
* This file is part of the Alfresco Example Content Application.
* If the software was purchased under a paid Alfresco license, the terms of
* the paid license agreement will prevail. Otherwise, the software is
* provided under the following open source license terms:
*
* The Alfresco Example Content Application is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Alfresco Example Content Application is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* from Hyland Software. If not, see .
*/
import { EnvironmentProviders } from '@angular/core';
import { Store } from '@ngrx/store';
import { MatIconRegistry } from '@angular/material/icon';
import { DomSanitizer } from '@angular/platform-browser';
import { AppStore } from '@alfresco/aca-shared/store';
import { ContentActionRef, DocumentListPresetRef, ExtensionConfig, ExtensionLoaderService, ExtensionRef, ExtensionService, NavBarGroupRef, NavigationState, ProfileState, RuleContext, RuleEvaluator, SelectionState, SidebarTabRef } from '@alfresco/adf-extensions';
import { AppConfigService, AuthenticationService, LogService } from '@alfresco/adf-core';
import { Observable, Subject } from 'rxjs';
import { NodeEntry, RepositoryInfo } from '@alfresco/js-api';
import { ViewerRules } from '../models/viewer.rules';
import { Badge, UserProfileSection } from '../models/types';
import { NodePermissionService } from '../services/node-permission.service';
import { SearchCategory } from '@alfresco/adf-content-services';
import * as i0 from "@angular/core";
export declare function provideContentAppExtensions(): EnvironmentProviders[];
export declare class AppExtensionService implements RuleContext {
readonly auth: AuthenticationService;
protected readonly store: Store;
protected readonly loader: ExtensionLoaderService;
protected readonly extensions: ExtensionService;
readonly permissions: NodePermissionService;
readonly appConfig: AppConfigService;
protected readonly matIconRegistry: MatIconRegistry;
protected readonly sanitizer: DomSanitizer;
protected readonly logger: LogService;
private readonly _references;
bulkActionExecuted$: Subject;
navbar: Array;
sidebarTabs: Array;
contentMetadata: any;
search: any;
viewerRules: ViewerRules;
private readonly _headerActions;
private readonly _toolbarActions;
private readonly _viewerToolbarActions;
private readonly _sharedLinkViewerToolbarActions;
private readonly _contextMenuActions;
private readonly _openWithActions;
private readonly _createActions;
private readonly _sidebarActions;
private readonly _badges;
private readonly _filesDocumentListPreset;
private readonly _customMetadataPanels;
private readonly _bulkActions;
private readonly _userProfileSections;
documentListPresets: {
libraries: Array;
favoriteLibraries: Array;
shared: Array;
recent: Array;
favorites: Array;
trashcan: Array;
searchLibraries: Array;
searchResults: Array;
};
selection: SelectionState;
navigation: NavigationState;
profile: ProfileState;
repository: RepositoryInfo;
withCredentials: boolean;
references$: Observable;
filesDocumentListPreset$: Observable;
config: ExtensionConfig;
constructor();
load(): Promise;
setup(config: ExtensionConfig): void;
protected registerIcons(config: ExtensionConfig): void;
protected loadNavBar(config: ExtensionConfig): Array;
protected getDocumentListPreset(config: ExtensionConfig, key: string): DocumentListPresetRef[];
getApplicationNavigation(elements: any): Array;
loadContentMetadata(config: ExtensionConfig): any;
loadSearchForms(config: ExtensionConfig): any;
filterDisabled(object: Array<{
disabled: boolean;
}> | {
disabled: boolean;
}): any;
getSidebarTabs(): Array;
private setActionDisabledFromRule;
updateSidebarActions(): void;
getCreateActions(): Observable>;
getBadges(node: NodeEntry): Observable>;
getUserProfileSections(): Observable>;
getCustomMetadataPanels(node: NodeEntry): Observable>;
private buildMenu;
private getAllowedActions;
getAllowedSidebarActions(): Observable>;
getAllowedToolbarActions(): Observable>;
getViewerToolbarActions(): Observable>;
getBulkActions(): Observable>;
getOpenWithActions(): Observable>;
getSharedLinkViewerToolbarActions(): Observable>;
getHeaderActions(): Observable>;
getAllowedContextMenuActions(): Observable>;
copyAction(action: ContentActionRef): ContentActionRef;
filterVisible(action: ContentActionRef | SidebarTabRef | DocumentListPresetRef | SearchCategory): boolean;
isViewerExtensionDisabled(extension: any): boolean;
runActionById(id: string, additionalPayload?: any): void;
isRuleDefined(ruleId: string): boolean;
evaluateRule(ruleId: string | string[], ...args: any[]): boolean;
getEvaluator(key: string): RuleEvaluator;
canPreviewNode(node: NodeEntry): boolean;
canShowViewerNavigation(node: NodeEntry): boolean;
bulkActionExecuted(): void;
isFeatureSupported(feature: string): boolean;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵprov: i0.ɵɵInjectableDeclaration;
}