import * as i0 from '@angular/core';
import { AfterViewInit, ElementRef, OnInit, OnChanges, AfterContentInit, EventEmitter, SimpleChanges, OnDestroy, InjectionToken, ViewContainerRef, ComponentRef, TemplateRef, QueryList, AfterViewChecked, Type, NgZone, ModuleWithProviders } from '@angular/core';
import { Node, Site, FavoritesApi, SitesApi, SiteEntry, NodeEntry, DeletedNodeEntry, TrashcanApi, NodesApi, PathInfo, ContentApi, VersionEntry, TagEntry, TagsApi, TagPaging, TagBody, RequestHighlight, AlfrescoApi, AlfrescoApiConfig, SearchApi, ResultSetPaging, RequestScope, SearchRequest, RequestSortDefinitionInner, RequestFacetFields, NodePaging, NodePagingList, QueriesApi, Pagination, PeopleApi, SharedlinksApi, FavoritePaging, SiteMemberPaging, SitePaging, DeletedNodesPaging, SharedLinkPaging, ChildAssociationBody, AssociationBody, DiscoveryApi, AboutApi, SystemPropertiesApi, RepositoryInfo, BpmProductVersionModel, SystemPropertiesRepresentation, UploadApi, VersionsApi, PathElement, ContentPagingQuery, Version, Category, ClassesApi, Definition, Property as Property$1, PermissionElement, Capabilities, Group, GroupsApi, GroupMemberPaging, SharedLinkBodyCreate, SharedLinkEntry, GroupEntry, ContentIncludeQuery, AspectEntry, AspectPaging, AspectsApi, ListAspectsOpts, TypesApi, TypeEntry, CommentsApi, NodeChildAssociation, VersionInfo, SiteBodyCreate, SiteMembershipRequestWithPersonPaging, SiteMembershipBodyCreate, SiteMemberEntry, SiteMembershipBodyUpdate, SiteGroupPaging, SiteGroupEntry, RenditionsApi, RenditionEntry, NodesIncludeQuery, NodeAssignedHold, JobIdBodyEntry, SizeDetailsEntry, NodeAssociationPaging, PersonBodyCreate, PersonBodyUpdate, ContentFieldsQuery, PreferenceEntry, CategoriesApi, CategoryPaging, CategoryEntry, CategoryBody, CategoryLinkBody, SecurityGroup, SecurityMark, SecurityGroupsApi, SecurityMarksApi, AuthorityClearanceApi, SecurityGroupBody, SecurityGroupEntry, SecurityMarkBody, SecurityMarkPaging, SecurityMarkEntry, AuthorityClearanceGroupPaging, NodeSecurityMarkBody, LegalHoldApi, Hold, HoldEntry, HoldPaging, HoldBody, RequestQuery, BulkAssignHoldResponseEntry, HoldBulkStatusEntry } from '@alfresco/js-api';
import * as rxjs from 'rxjs';
import { BehaviorSubject, Observable, ReplaySubject, Subject } from 'rxjs';
import { ErrorStateMatcher } from '@angular/material/core';
import { PaginationModel, Chip, AppConfigService, StorageService, OpenidConfiguration, DataColumn, SearchComponentInterface, AuthenticationService, SearchTextInputComponent, DataSorting, DataRow, ThumbnailService, DataTableAdapter, BaseEvent, DataTableSchema, PaginatedComponent, DataColumnListComponent, CustomLoadingContentTemplateDirective, CustomNoPermissionTemplateDirective, CustomEmptyContentTemplateDirective, ShowHeaderMode, DataTableComponent, DataCellEvent, DataRowActionEvent, RequestPaginationModel, TranslationService, FileInfo, HighlightDirective, InfinitePaginationComponent, CardViewItem, CardViewTextItemModel, CardViewDateItemModel, ObjectDataRow, User, CommentModel, CommentsService, UpdateNotification, CardViewBaseItemModel, Track, ViewerComponent, ViewerToolbarComponent, ViewerSidebarComponent, ViewerToolbarActionsComponent, ViewerMoreActionsComponent, ViewerOpenWithComponent, CloseButtonPosition } from '@alfresco/adf-core';
import * as _angular_forms from '@angular/forms';
import { FormControl, UntypedFormControl, FormGroupDirective, NgForm, FormGroup, UntypedFormGroup, Validators } from '@angular/forms';
import { MatDialog, MatDialogRef, MatDialogConfig } from '@angular/material/dialog';
import { MatCheckboxChange, MatCheckbox } from '@angular/material/checkbox';
import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';
import { MatChipInputEvent } from '@angular/material/chips';
import * as i1 from '@mat-datetimepicker/core';
import { MatDatetimepickerInputEvent } from '@mat-datetimepicker/core';
import { ConfigurableFocusTrap } from '@angular/cdk/a11y';
import { MatMenuTrigger } from '@angular/material/menu';
import { MatRadioChange } from '@angular/material/radio';
import { MatSelect, MatSelectChange } from '@angular/material/select';
import { DataSource, CollectionViewer, SelectionModel } from '@angular/cdk/collections';
import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
import { MatSlideToggleChange } from '@angular/material/slide-toggle';
import { MatSelectionList } from '@angular/material/list';
import { FlatTreeControl } from '@angular/cdk/tree';

declare class AlfrescoIconComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<AlfrescoIconComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AlfrescoIconComponent, "adf-alfresco-icon", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodeLockDirective implements AfterViewInit {
    element: ElementRef<any>;
    private readonly renderer;
    private readonly contentService;
    private readonly contentNodeDialogService;
    /** Node to lock/unlock. */
    node: Node;
    onClick(event: any): void;
    ngAfterViewInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeLockDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NodeLockDirective, "[adf-node-lock]", never, { "node": { "alias": "adf-node-lock"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodeCounterDirective implements OnInit, OnChanges {
    private readonly viewContainerRef;
    /** Number to display in the counter badge */
    counter: number;
    componentRef: NodeCounterComponent;
    ngOnInit(): void;
    ngOnChanges(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeCounterDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NodeCounterDirective, "[adf-node-counter]", never, { "counter": { "alias": "adf-node-counter"; "required": false; }; }, {}, never, never, true, never>;
}
declare class NodeCounterComponent {
    counter: number;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeCounterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NodeCounterComponent, "adf-node-counter", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class AutoFocusDirective implements AfterContentInit {
    private readonly el;
    ngAfterContentInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AutoFocusDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<AutoFocusDirective, "[adf-auto-focus]", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

interface LibraryEntity {
    entry: Site;
    isLibrary: boolean;
    isFavorite: boolean;
}

/*!
 * @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.
 */

declare class LibraryFavoriteDirective implements OnChanges {
    private readonly alfrescoApiService;
    private readonly notificationService;
    library: LibraryEntity;
    toggle: EventEmitter<any>;
    error: EventEmitter<any>;
    private targetLibrary;
    readonly favoritesApi: FavoritesApi;
    onClick(): void;
    ngOnChanges(changes: SimpleChanges): void;
    isFavorite(): boolean;
    private markFavoriteLibrary;
    private addFavorite;
    private removeFavorite;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibraryFavoriteDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LibraryFavoriteDirective, "[adf-favorite-library]", ["favoriteLibrary"], { "library": { "alias": "adf-favorite-library"; "required": false; }; }, { "toggle": "toggle"; "error": "error"; }, never, never, true, never>;
}

/*!
 * @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.
 */
interface LibraryMembershipToggleEvent {
    updatedEntry?: any;
    shouldReload: boolean;
    i18nKey: string;
}

/*!
 * @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.
 */
interface LibraryMembershipErrorEvent {
    error: any;
    i18nKey: string;
}

/*!
 * @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.
 */

declare class LibraryMembershipDirective implements OnChanges {
    private readonly alfrescoApiService;
    private readonly sitesService;
    private readonly versionCompatibilityService;
    targetSite: any;
    isJoinRequested: BehaviorSubject<boolean>;
    readonly sitesApi: SitesApi;
    /** Site for which to toggle the membership request. */
    selection: SiteEntry;
    /** Site for which to toggle the membership request. */
    isAdmin: boolean;
    toggle: EventEmitter<LibraryMembershipToggleEvent>;
    error: EventEmitter<LibraryMembershipErrorEvent>;
    onClick(): void;
    ngOnChanges(changes: SimpleChanges): void;
    toggleMembershipRequest(): void;
    markMembershipRequest(): void;
    private joinLibraryRequest;
    private joinLibrary;
    private cancelJoinRequest;
    private getMembershipRequest;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibraryMembershipDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<LibraryMembershipDirective, "[adf-library-membership]", ["libraryMembership"], { "selection": { "alias": "adf-library-membership"; "required": false; }; "isAdmin": { "alias": "isAdmin"; "required": false; }; }, { "toggle": "toggle"; "error": "error"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodeDeleteDirective implements OnChanges {
    private readonly alfrescoApiService;
    private readonly translation;
    private readonly elementRef;
    /** Array of nodes to delete. */
    selection: NodeEntry[] | DeletedNodeEntry[];
    /** If true then the nodes are deleted immediately rather than being put in the trash */
    permanent: boolean;
    /** Emitted when the nodes have been deleted. */
    delete: EventEmitter<any>;
    readonly trashcanApi: TrashcanApi;
    readonly nodesApi: NodesApi;
    onClick(): void;
    ngOnChanges(): void;
    private setDisableAttribute;
    private process;
    private getDeleteNodesBatch;
    private deleteNode;
    private processStatus;
    private getMessage;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeDeleteDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NodeDeleteDirective, "[adf-delete]", never, { "selection": { "alias": "adf-delete"; "required": false; }; "permanent": { "alias": "permanent"; "required": false; }; }, { "delete": "delete"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodeFavoriteDirective implements OnChanges {
    private readonly alfrescoApiService;
    private readonly notificationService;
    favorites: any[];
    readonly favoritesApi: FavoritesApi;
    /** Array of nodes to toggle as favorites. */
    selection: NodeEntry[];
    /** Emitted when the favorite setting is complete. */
    toggle: EventEmitter<any>;
    /** Emitted when the favorite setting fails. */
    error: EventEmitter<any>;
    onClick(): void;
    ngOnChanges(changes: SimpleChanges): void;
    toggleFavorite(): void;
    markFavoritesNodes(selection: NodeEntry[]): void;
    hasFavorites(): boolean;
    private getProcessBatch;
    private getFavorite;
    private createFavoriteBody;
    private getNodeType;
    private diff;
    private reduce;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeFavoriteDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NodeFavoriteDirective, "[adf-node-favorite]", ["adfFavorite"], { "selection": { "alias": "adf-node-favorite"; "required": false; }; }, { "toggle": "toggle"; "error": "error"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class RestoreMessageModel {
    message: string;
    path: PathInfo;
    action: string;
}

/*!
 * @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.
 */

declare class NodeRestoreDirective {
    private readonly alfrescoApiService;
    private readonly translation;
    private readonly restoreProcessStatus;
    readonly trashcanApi: TrashcanApi;
    /** Array of deleted nodes to restore. */
    selection: DeletedNodeEntry[];
    /** Emitted when restoration is complete. */
    restore: EventEmitter<RestoreMessageModel>;
    onClick(): void;
    constructor();
    private recover;
    private restoreNodesBatch;
    private getNodesWithPath;
    private getDeletedNodes;
    private restoreNode;
    private diff;
    private processStatus;
    private getRestoreMessage;
    private notification;
    private reset;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeRestoreDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NodeRestoreDirective, "[adf-restore]", never, { "selection": { "alias": "adf-restore"; "required": false; }; }, { "restore": "restore"; }, never, never, true, never>;
}

/**
 * Directive selectors without adf- prefix will be deprecated on 3.0.0
 */
declare class NodeDownloadDirective {
    private readonly apiService;
    private readonly downloadService;
    private readonly dialog;
    readonly contentApi: ContentApi;
    /** Nodes to download. */
    nodes: NodeEntry | NodeEntry[];
    /** Node's version to download. */
    version: VersionEntry;
    onClick(): void;
    /**
     * Downloads multiple selected nodes.
     * Packs result into a .ZIP archive if there is more than one node selected.
     *
     * @param selection Multiple selected nodes to download
     */
    downloadNodes(selection: NodeEntry | Array<NodeEntry>): void;
    /**
     * Downloads a single node.
     * Packs result into a .ZIP archive is the node is a Folder.
     *
     * @param node Node to download
     */
    downloadNode(node: NodeEntry): void;
    private isSelectionValid;
    private downloadFile;
    private downloadZip;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeDownloadDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NodeDownloadDirective, "[adfNodeDownload]", never, { "nodes": { "alias": "adfNodeDownload"; "required": false; }; "version": { "alias": "version"; "required": false; }; }, {}, never, never, true, never>;
}

declare const CONTENT_DIRECTIVES: (typeof NodeDownloadDirective | typeof NodeCounterComponent | typeof AutoFocusDirective | typeof NodeLockDirective | typeof LibraryFavoriteDirective | typeof LibraryMembershipDirective | typeof NodeDeleteDirective | typeof NodeFavoriteDirective | typeof NodeRestoreDirective)[];
/** @deprecated import standalone directives instead */
declare class ContentDirectiveModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentDirectiveModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ContentDirectiveModule, never, [typeof NodeLockDirective, typeof NodeCounterDirective, typeof NodeCounterComponent, typeof AutoFocusDirective, typeof LibraryFavoriteDirective, typeof LibraryMembershipDirective, typeof NodeDeleteDirective, typeof NodeFavoriteDirective, typeof NodeRestoreDirective, typeof NodeDownloadDirective], [typeof NodeLockDirective, typeof NodeCounterDirective, typeof NodeCounterComponent, typeof AutoFocusDirective, typeof LibraryFavoriteDirective, typeof LibraryMembershipDirective, typeof NodeDeleteDirective, typeof NodeFavoriteDirective, typeof NodeRestoreDirective, typeof NodeDownloadDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ContentDirectiveModule>;
}

/**
 *
 * This component, provide a list of the tags relative a node with actions button to add or remove new tag
 */
declare class TagActionsComponent implements OnChanges, OnInit {
    private readonly tagService;
    private readonly translateService;
    /** The identifier of a node. */
    nodeId: string;
    /** Emitted when a tag is added successfully. */
    successAdd: EventEmitter<any>;
    /** Emitted when an error occurs. */
    error: EventEmitter<any>;
    /** Emitted when an action is chosen. */
    result: EventEmitter<any>;
    newTagName: string;
    tagsEntries: any;
    errorMsg: string;
    disableAddTag: boolean;
    tagErrorStateMatcher: ErrorStateMatcher;
    private readonly destroyRef;
    ngOnInit(): void;
    ngOnChanges(): void;
    refreshTag(): void;
    addTag(): void;
    searchTag(searchTagName: string): any;
    cleanErrorMsg(): void;
    removeTag(tag: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TagActionsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TagActionsComponent, "adf-tag-node-actions-list", never, { "nodeId": { "alias": "nodeId"; "required": true; }; }, { "successAdd": "successAdd"; "error": "error"; "result": "result"; }, never, never, true, never>;
}

/*!
 * @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.
 */

/**
 * This component provide a list of all the tag inside the ECM
 */
declare class TagListComponent implements OnInit {
    private readonly tagService;
    /** Emitted when a tag is selected. */
    result: EventEmitter<any>;
    /**
     * Array of tags that are displayed
     */
    tagsEntries: TagEntry[];
    /**
     * Number of items per iteration
     */
    size: number;
    defaultPagination: PaginationModel;
    pagination: PaginationModel;
    isLoading: boolean;
    isSizeMinimum: boolean;
    constructor();
    ngOnInit(): void;
    refreshTag(opts?: any): void;
    loadMoreTags(): void;
    loadLessTags(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TagListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TagListComponent, "adf-tag-list", never, {}, { "result": "result"; }, never, never, true, never>;
}

/*!
 * @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.
 */

/**
 *
 * This component, ShowNodeTag a list of the tag on relative a node
 */
declare class TagNodeListComponent implements OnChanges, OnInit {
    private readonly tagService;
    /** The identifier of a node. */
    nodeId: string;
    /** Show delete button */
    showDelete: boolean;
    /** Should limit number of tags displayed */
    limitTagsDisplayed: boolean;
    /** Emitted when a tag is selected. */
    results: EventEmitter<TagEntry[]>;
    private _tagChips;
    get tagChips(): Chip[];
    private readonly destroyRef;
    ngOnChanges(): void;
    ngOnInit(): void;
    refreshTag(): void;
    removeTag(tag: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TagNodeListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TagNodeListComponent, "adf-tag-node-list", never, { "nodeId": { "alias": "nodeId"; "required": true; }; "showDelete": { "alias": "showDelete"; "required": false; }; "limitTagsDisplayed": { "alias": "limitTagsDisplayed"; "required": false; }; }, { "results": "results"; }, never, never, true, never>;
}

declare class TagService {
    private readonly apiService;
    private readonly userPreferencesService;
    private readonly appConfigService;
    readonly tagsApi: TagsApi;
    /** Emitted when tag information is updated. */
    refresh: EventEmitter<any>;
    /**
     * Gets a list of tags added to a node.
     *
     * @param nodeId ID of the target node
     * @returns TagPaging object (defined in JS-API) containing the tags
     */
    getTagsByNodeId(nodeId: string): Observable<TagPaging>;
    /**
     * Gets a list of all the tags already defined in the repository.
     *
     * @param opts Options supported by JS-API
     * @param includedCounts True if count field should be included in response object for each tag, false otherwise.
     * @returns TagPaging object (defined in JS-API) containing the tags
     */
    getAllTheTags(opts?: any, includedCounts?: boolean): Observable<TagPaging>;
    /**
     * Adds a tag to a node.
     *
     * @param nodeId ID of the target node
     * @param tagName Name of the tag to add
     * @returns TagEntry object (defined in JS-API) with details of the new tag
     */
    addTag(nodeId: string, tagName: string): Observable<TagEntry>;
    /**
     * Removes a tag from a node.
     *
     * @param nodeId ID of the target node
     * @param tag Name of the tag to remove
     * @returns Null object when the operation completes
     */
    removeTag(nodeId: string, tag: string): Observable<void>;
    /**
     * Creates tags.
     *
     * @param tags list of tags to create.
     * @returns Created tags.
     */
    createTags(tags: TagBody[]): Observable<TagEntry | TagPaging>;
    /**
     * Update a tag
     *
     * @param tagId The identifier of a tag.
     * @param tagBody The updated tag.
     * @returns Updated tag.
     */
    updateTag(tagId: string, tagBody: TagBody): Observable<TagEntry>;
    /**
     * Find tags which name contains searched name.
     *
     * @param name Value for name which should be used during searching tags.
     * @param sorting Object which configures sorting. OrderBy field specifies field used for sorting, direction specified ascending or descending direction.
     * Default sorting is ascending by tag field.
     * @param includedCounts True if count field should be included in response object for each tag, false otherwise.
     * @param skipCount Specify how many first results should be skipped. Default 0.
     * @param maxItems Specify max number of returned tags. Default is specified by UserPreferencesService.
     * @returns Found tags which name contains searched name.
     */
    searchTags(name: string, sorting?: {
        orderBy: string;
        direction: string;
    }, includedCounts?: boolean, skipCount?: number, maxItems?: number): Observable<TagPaging>;
    /**
     * Find tag which name matches exactly to passed name.
     *
     * @param name Value for name which should be used during finding exact tag.
     * @returns Found tag which name matches exactly to passed name.
     */
    findTagByName(name: string): Observable<TagEntry>;
    /**
     * Deletes a tag with tagId.
     * This will cause the tag to be removed from all nodes.
     * You must have admin rights to delete a tag.
     *
     * @param tagId of the tag to be deleted
     * @returns Null object when the operation completes
     */
    deleteTag(tagId: string): Observable<void>;
    /**
     * Assign tags to node. If tag is new then tag is also created additionally, if tag already exists then it is just assigned.
     *
     * @param nodeId Id of node to which tags should be assigned.
     * @param tags List of tags to create and assign or just assign if they already exist.
     * @returns Just linked tags to node or single tag if linked only one tag.
     */
    assignTagsToNode(nodeId: string, tags: TagBody[]): Observable<TagPaging | TagEntry>;
    /**
     * Checks if tags plugin is enabled.
     *
     * @returns boolean true if tags plugin is enabled, false otherwise.
     */
    areTagsEnabled(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<TagService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TagService>;
}

/*!
 * @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.
 */
/**
 * Available modes for tags creator.
 * Create mode allows only for creating completely new tags.
 * Create and Assign mode allows for both - creation of new tags and selection of existing tags.
 */
declare const TagsCreatorMode: {
    readonly CREATE: "CREATE";
    readonly CREATE_AND_ASSIGN: "CREATE_AND_ASSIGN";
};
type TagsCreatorMode = (typeof TagsCreatorMode)[keyof typeof TagsCreatorMode];

/*!
 * @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.
 */

interface TagNameControlErrors {
    duplicatedExistingTag?: boolean;
    duplicatedAddedTag?: boolean;
    emptyTag?: boolean;
    specialCharacters?: boolean;
}
/**
 * Allows to create multiple tags. That component contains input and two lists. Top list is all created tags, bottom list is searched tags based on input's value.
 */
declare class TagsCreatorComponent implements OnInit, OnDestroy {
    private readonly tagService;
    private readonly notificationService;
    /**
     * Mode for component.
     * In Create mode we can't select existing tags, we can only create them.
     * In Create and Assign mode we can both - create tags and select existing tags.
     */
    mode: TagsCreatorMode;
    /**
     * False if tags can be removed from top list, true otherwise.
     */
    disabledTagsRemoving: boolean;
    /**
     * Default top list.
     *
     * @param tags tags which should be displayed as default tags for top list.
     */
    set tags(tags: string[]);
    get tags(): string[];
    /**
     * Decides if input for tags creation/searching should be visible. When input is hidden then panel of existing tags is hidden as well.
     *
     * @param tagNameControlVisible true if input should be visible, false otherwise.
     */
    set tagNameControlVisible(tagNameControlVisible: boolean);
    get tagNameControlVisible(): boolean;
    /**
     * Emitted when bottom list is showing or hiding.
     */
    existingTagsPanelVisibilityChange: EventEmitter<boolean>;
    /**
     * Emitted when tags in top list are changed.
     */
    tagsChange: EventEmitter<string[]>;
    tagsToDisplay: Chip[];
    readonly nameErrorMessagesByErrors: Map<keyof TagNameControlErrors, string>;
    private readonly existingTagsListLimit;
    private readonly exactTagSet$;
    private _tags;
    private readonly _tagNameControl;
    private _tagNameControlVisible;
    private _existingTags;
    private _initialExistingTags;
    private _tagNameErrorMessageKey;
    private _spinnerVisible;
    private _typing;
    private _tagsListScrollbarVisible;
    private readonly cancelExistingTagsLoading$;
    private existingExactTag;
    private _existingTagsPanelVisible;
    private readonly tagsListElement;
    private readonly tagNameInputElement;
    private readonly dynamicChipList;
    private readonly destroyRef;
    ngOnInit(): void;
    ngOnDestroy(): void;
    get hostClass(): boolean;
    get tagNameControl(): FormControl<string>;
    get showEmptyTagMessage(): boolean;
    get existingTags(): TagEntry[];
    get tagNameErrorMessageKey(): string;
    get spinnerVisible(): boolean;
    get typing(): boolean;
    get tagsListScrollbarVisible(): boolean;
    get existingTagsPanelVisible(): boolean;
    /**
     * Add tags to top list using value which is set in input. Adding tag is not allowed when value in input is invalid
     * or if user is still typing what means that validation for input is not called yet.
     */
    addTag(): void;
    /**
     * Remove tag from top list. In case that tag was part of search result then that tag is moved to bottom list
     * (list of existing tags) after removing so user can reselect it again later.
     *
     * @param tag tag's name which should be removed from top list.
     */
    removeTag(tag: string): void;
    /**
     * Called when user selects any tag from list of existing tags. It moves tag from existing tags list to top list.
     *
     * @param selectedTag changes
     */
    addExistingTagToTagsToAssign(selectedTag: TagEntry): void;
    /**
     * Checks if component is in Create mode.
     *
     * @returns `true` if `Create` mode, `false` otherwise.
     */
    isOnlyCreateMode(): boolean;
    private onTagNameControlValueChange;
    private loadTags;
    private removeExactTagFromSearchedResult;
    private validateIfNotExistingTag;
    private validateIfNotAlreadyAdded;
    private compareTags;
    private validateEmptyTag;
    private validateSpecialCharacters;
    private setTagNameControlErrorMessageKey;
    private checkScrollbarVisibility;
    private removeTagFromArray;
    private updateExistingTagsListOnRemoveFromTagsToConfirm;
    private sortExistingTags;
    private excludeAlreadyAddedTags;
    private clearTagNameInput;
    private focusAfterRemoval;
    static ɵfac: i0.ɵɵFactoryDeclaration<TagsCreatorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TagsCreatorComponent, "adf-tags-creator", never, { "mode": { "alias": "mode"; "required": true; }; "disabledTagsRemoving": { "alias": "disabledTagsRemoving"; "required": false; }; "tags": { "alias": "tags"; "required": false; }; "tagNameControlVisible": { "alias": "tagNameControlVisible"; "required": false; }; }, { "existingTagsPanelVisibilityChange": "existingTagsPanelVisibilityChange"; "tagsChange": "tagsChange"; }, never, never, true, never>;
}

declare const CONTENT_TAG_DIRECTIVES: readonly [typeof TagsCreatorComponent, typeof TagActionsComponent, typeof TagListComponent, typeof TagNodeListComponent];
/** @deprecated use `...CONTENT_TAG_DIRECTIVES` instead or import standalone components directly */
declare class TagModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TagModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TagModule, never, [typeof TagsCreatorComponent, typeof TagActionsComponent, typeof TagListComponent, typeof TagNodeListComponent], [typeof TagsCreatorComponent, typeof TagActionsComponent, typeof TagListComponent, typeof TagNodeListComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TagModule>;
}

/*!
 * @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.
 */
interface AutocompleteOption {
    value: string;
    id?: string;
    fullPath?: string;
    query?: string;
}
declare const AutocompleteField: {
    readonly TAG: "TAG";
    readonly CATEGORIES: "cm:categories";
    readonly LOCATION: "SITE";
};
type AutocompleteField = (typeof AutocompleteField)[keyof typeof AutocompleteField];

/*!
 * @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.
 */

interface SearchWidgetSettings {
    field: string;
    allowUpdateOnChange?: boolean;
    hideDefaultAction?: boolean;
    unit?: string;
    format?: string;
    allowOnlyPredefinedValues?: boolean;
    autocompleteOptions?: AutocompleteOption[];
    [indexer: string]: any;
}

/*!
 * @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.
 */
interface FilterQuery {
    query: string;
}

/*!
 * @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.
 */
interface FacetQuery {
    label: string;
    query: string;
    checked?: boolean;
    count?: number;
    group?: string;
}

/*!
 * @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.
 */
declare class SearchFilterList<T> implements Iterable<T> {
    private filteredItems;
    private _filterText;
    items: T[];
    pageSize: number;
    currentPageSize: number;
    get filterText(): string;
    set filterText(value: string);
    private _filter;
    get filter(): (item: T) => boolean;
    set filter(value: (item: T) => boolean);
    private applyFilter;
    /**
     * Returns visible portion of the items.
     *
     * @returns list of items
     */
    get visibleItems(): T[];
    /**
     * Get items length
     *
     * @returns entire collection length including items not displayed on the page
     */
    get length(): number;
    /**
     * Detect whether more items can be displayed.
     *
     * @returns `true` if can show more items, otherwise `false`
     */
    get canShowMoreItems(): boolean;
    /**
     * Detect whether less items can be displayed.
     *
     * @returns `true` if can show less items, otherwise `false`
     */
    get canShowLessItems(): boolean;
    /**
     * Detect whether content fits single page.
     *
     * @returns `true` if content fits single page, otherwise `false`.
     */
    get fitsPage(): boolean;
    constructor(items?: T[], pageSize?: number);
    /** Display more items. */
    showMoreItems(): void;
    /** Display less items. */
    showLessItems(): void;
    /** Reset entire collection and page settings. */
    clear(): void;
    addItem(item: T): void;
    deleteItem(item: T): void;
    [Symbol.iterator](): Iterator<T>;
}

/*!
 * @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.
 */
interface FacetFieldBucket {
    count: number;
    display?: string;
    label: string;
    filterQuery: string;
    checked?: boolean;
    field?: string;
}

/*!
 * @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.
 */

interface FacetField {
    field: string;
    label: string;
    mincount?: number;
    limit?: number;
    offset?: number;
    prefix?: string;
    buckets?: SearchFilterList<FacetFieldBucket>;
    pageSize?: number;
    currentPageSize?: number;
    checked?: boolean;
    type?: string;
    settings?: FacetFieldSettings;
    [propName: string]: any;
}
interface FacetFieldSettings {
    allowUpdateOnChange?: boolean;
    hideDefaultAction?: boolean;
    facetOrder?: number;
    bucketSortBy?: FacetBucketSortBy;
    bucketSortDirection?: FacetBucketSortDirection;
}
declare const FacetBucketSortBy: {
    readonly LABEL: "LABEL";
    readonly COUNT: "COUNT";
};
type FacetBucketSortBy = (typeof FacetBucketSortBy)[keyof typeof FacetBucketSortBy];
declare const FacetBucketSortDirection: {
    readonly ASCENDING: "ASCENDING";
    readonly DESCENDING: "DESCENDING";
};
type FacetBucketSortDirection = (typeof FacetBucketSortDirection)[keyof typeof FacetBucketSortDirection];

/*!
 * @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.
 */

interface SearchCategory {
    id: string;
    name: string;
    columnKey?: string;
    enabled: boolean;
    expanded: boolean;
    component: {
        selector: string;
        settings: SearchWidgetSettings;
    };
    rules?: {
        visible: string;
    };
}

/*!
 * @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.
 */
interface SearchSortingDefinition {
    key: string;
    label: string;
    type: string;
    field: string;
    ascending: boolean;
}

/*!
 * @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.
 */

interface SearchConfiguration {
    id: string;
    include?: string[];
    fields?: string[];
    categories?: SearchCategory[];
    filterQueries?: FilterQuery[];
    filterWithContains?: boolean;
    resetButton?: boolean;
    facetQueries?: {
        label?: string;
        pageSize?: number;
        expanded?: boolean;
        mincount?: number;
        queries: FacetQuery[];
        settings?: FacetFieldSettings;
    };
    facetFields?: {
        expanded?: boolean;
        fields: FacetField[];
    };
    facetIntervals?: {
        expanded?: boolean;
        intervals: FacetField[];
    };
    sorting?: {
        options: SearchSortingDefinition[];
        defaults: SearchSortingDefinition[];
    };
    highlight?: RequestHighlight;
    name?: string;
    default?: boolean;
}

/*!
 * @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.
 */
interface SearchRange {
    field: string;
    start: string;
    end: string;
    gap: string;
    hardend: boolean;
    other: Array<string>;
    include: Array<string>;
    label: string;
    excludeFilters: Array<string>;
}

/*!
 * @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.
 */
interface SearchForm {
    id: string;
    index: number;
    name: string;
    default: boolean;
    selected: boolean;
}

/*!
 * @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.
 */

declare const ALFRESCO_API_FACTORY: InjectionToken<unknown>;
declare class AlfrescoApiService {
    protected appConfig: AppConfigService;
    protected storageService: StorageService;
    private readonly alfrescoApiFactory;
    alfrescoApiInitialized: ReplaySubject<boolean>;
    protected alfrescoApi: AlfrescoApi;
    lastConfig: AlfrescoApiConfig;
    currentAppConfig: AlfrescoApiConfig;
    idpConfig: OpenidConfiguration;
    private readonly excludedErrorUrl;
    getInstance(): AlfrescoApi;
    load(config: AlfrescoApiConfig): Promise<void>;
    reset(): Promise<void>;
    private getAuthWithFixedOriginLocation;
    private mapAlfrescoApiOpenIdConfig;
    private getCurrentAppConfig;
    protected initAlfrescoApi(): void;
    private initAlfrescoApiWithConfig;
    createInstance(config: AlfrescoApiConfig): AlfrescoApi;
    isDifferentConfig(lastConfig: AlfrescoApiConfig, newConfig: AlfrescoApiConfig): boolean;
    isExcludedErrorListener(currentFullPath: string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<AlfrescoApiService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AlfrescoApiService>;
}

/*!
 * @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.
 */

declare abstract class BaseQueryBuilderService {
    protected readonly appConfig: AppConfigService;
    protected readonly alfrescoApiService: AlfrescoApiService;
    private readonly router;
    private readonly activatedRoute;
    readonly searchApi: SearchApi;
    configUpdated: Subject<SearchConfiguration>;
    filterLoaded: Subject<void>;
    executed: Subject<ResultSetPaging>;
    error: Subject<unknown>;
    searchForms: ReplaySubject<SearchForm[]>;
    filterQueryUpdate: Subject<void>;
    populateFilters: BehaviorSubject<{
        [key: string]: any;
    }>;
    queryFragmentsUpdate: BehaviorSubject<{
        [key: string]: any;
    }>;
    userFacetBucketsUpdate: BehaviorSubject<{
        [key: string]: FacetFieldBucket[];
    }>;
    categories: SearchCategory[];
    filterQueries: FilterQuery[];
    filterRawParams: {
        [key: string]: any;
    };
    paging: {
        maxItems?: number;
        skipCount?: number;
    };
    sorting: SearchSortingDefinition[];
    sortingOptions: SearchSortingDefinition[];
    private _encodedQuery;
    private scope;
    private _selectedConfigurationId;
    private _queryFragments;
    private _parsedQuery;
    private _userQuery;
    private _searchMode;
    private readonly selectedConfigurationKey;
    private readonly queryFragmentsHandler;
    protected userFacetBuckets: {
        [key: string]: FacetFieldBucket[];
    };
    get queryFragments(): {
        [key: string]: any;
    };
    set queryFragments(value: {
        [key: string]: any;
    });
    get encodedQuery(): string;
    get wildcardsEnabled(): boolean;
    get userQuery(): string;
    set userQuery(value: string);
    get parsedQuery(): string;
    get searchMode(): 'regular' | 'formula';
    set searchMode(value: 'regular' | 'formula');
    get selectedConfigurationId(): string;
    set selectedConfigurationId(value: string);
    config: SearchConfiguration;
    ranges: {
        [id: string]: SearchRange;
    };
    protected constructor(appConfig: AppConfigService, alfrescoApiService: AlfrescoApiService);
    abstract loadConfiguration(): SearchConfiguration | SearchConfiguration[];
    abstract isFilterServiceActive(): boolean;
    resetToDefaults(withNavigate?: boolean, resetUserQuery?: boolean): void;
    getDefaultConfiguration(): SearchConfiguration | undefined;
    updateSelectedConfiguration(id: string, resetFilters?: boolean, shouldExecute?: boolean): void;
    private resetSearchOptions;
    getSearchFormDetails(): SearchForm[];
    private setUpSearchConfiguration;
    /**
     * Adds a facet bucket to a field.
     *
     * @param field The target field
     * @param bucket Bucket to add
     */
    addUserFacetBucket(field: string, bucket: FacetFieldBucket): void;
    /**
     * Gets the buckets currently added to a field
     *
     * @param field The target fields
     * @returns Bucket array
     */
    getUserFacetBuckets(field: string): FacetFieldBucket[];
    /**
     * Removes an existing bucket from a field.
     *
     * @param field The target field
     * @param bucket Bucket to remove
     */
    removeUserFacetBucket(field: string, bucket: FacetFieldBucket): void;
    /**
     * Resets an existing bucket list.
     */
    resetUserFacetBucket(): void;
    /**
     * Adds a filter query to the current query.
     *
     * @param query Query string to add
     */
    addFilterQuery(query: string): void;
    /**
     * Removes an existing filter query.
     *
     * @param query The query to remove
     */
    removeFilterQuery(query: string): void;
    /**
     * Gets a facet query by label.
     *
     * @param label Label of the query
     * @returns Facet query data
     */
    getFacetQuery(label: string): FacetQuery;
    /**
     * Gets a facet field by label.
     *
     * @param label Label of the facet field
     * @returns Facet field data
     */
    getFacetField(label: string): FacetField;
    setScope(scope: RequestScope): void;
    getScope(): RequestScope;
    /**
     * Builds and executes the current query.
     *
     * @param updateQueryParams whether query params should be updated with encoded query
     * @param queryBody query settings
     */
    execute(updateQueryParams?: boolean, queryBody?: SearchRequest): Promise<void>;
    search(queryBody: SearchRequest): Observable<ResultSetPaging>;
    /**
     * Builds the current query.
     *
     * @returns The finished query
     */
    buildQuery(): SearchRequest;
    /**
     * Gets the primary sorting definition.
     *
     * @returns The primary sorting definition
     */
    getPrimarySorting(): SearchSortingDefinition;
    /**
     * Gets all pre-configured sorting options that users can choose from.
     *
     * @returns Pre-configured sorting options
     */
    getSortingOptions(): SearchSortingDefinition[];
    /**
     * Gets the query group.
     *
     * @param query Target query
     * @returns Query group
     */
    getQueryGroup(query: FacetQuery): string;
    /**
     * Checks if FacetQueries has been defined
     *
     * @returns True if defined, false otherwise
     */
    get hasFacetQueries(): boolean;
    /**
     * Checks if FacetIntervals has been defined
     *
     * @returns True if defined, false otherwise
     */
    get hasFacetIntervals(): boolean;
    get hasFacetHighlight(): boolean;
    protected get sort(): RequestSortDefinitionInner[];
    protected get facetQueries(): FacetQuery[];
    protected get facetIntervals(): any;
    protected get highlight(): RequestHighlight;
    protected getFinalQuery(): string;
    protected get facetFields(): RequestFacetFields;
    /**
     * Encloses a label name with double quotes if it contains whitespace characters.
     *
     * @param configLabel Original label text
     * @returns Label, possibly with quotes if it contains spaces
     */
    getSupportedLabel(configLabel: string): string;
    /**
     * Encodes filter configuration stored in filterRawParams object.
     */
    encodeQuery(): void;
    /**
     * Encodes existing filters configuration and updates search query param value.
     */
    updateSearchQueryParams(): void;
    /**
     * Builds search query with provided user query, executes query, encodes latest filter config and navigates to search.
     *
     * @param query user query to search for
     * @param searchUrl search url to navigate to
     */
    navigateToSearch(query: string, searchUrl: string): Promise<void>;
    /**
     * Checks if string is an AND or OR operator
     *
     * @param input string to check if it is an operator
     * @returns boolean
     */
    isOperator(input: string): boolean;
    private createQueryFragmentsProxy;
    private setParsedQuery;
    private parseTermByFields;
    private escapeQueryTerm;
    private resetFilterRawParams;
}

declare class SearchQueryBuilderService extends BaseQueryBuilderService {
    private readonly configuration;
    isFilterServiceActive(): boolean;
    constructor();
    loadConfiguration(): SearchConfiguration;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchQueryBuilderService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SearchQueryBuilderService>;
}

/*!
 * @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.
 */

interface SearchWidget {
    id: string;
    settings?: SearchWidgetSettings;
    context?: SearchQueryBuilderService;
    isActive?: boolean;
    startValue: any;
    displayValue$: ReplaySubject<string>;
    reset(): void;
    submitValues(): void;
    hasValidValue(): boolean;
    getCurrentValue(): any;
    setValue(value: any): any;
}

/*!
 * @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.
 */

interface SearchListOption {
    name: string;
    value: string;
    checked: boolean;
}
declare class SearchCheckListComponent implements SearchWidget, OnInit {
    private readonly translationService;
    id: string;
    settings?: SearchWidgetSettings;
    context?: SearchQueryBuilderService;
    options: SearchFilterList<SearchListOption>;
    operator: string;
    startValue: string | string[];
    pageSize: number;
    isActive: boolean;
    enableChangeUpdate: boolean;
    displayValue$: ReplaySubject<string>;
    private readonly destroyRef;
    constructor();
    ngOnInit(): void;
    clear(): void;
    clearOptions(): void;
    reset(updateContext?: boolean): void;
    updateDisplayValue(): void;
    changeHandler(event: MatCheckboxChange, option: any): void;
    hasValidValue(): boolean;
    getCurrentValue(): string[];
    setValue(value: any): void;
    private getCheckedValues;
    submitValues(updateContext?: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchCheckListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchCheckListComponent, "adf-search-check-list", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchChipAutocompleteInputComponent implements OnInit, OnChanges {
    optionInput: ElementRef<HTMLInputElement>;
    autocompleteOptions: AutocompleteOption[];
    preselectedOptions: AutocompleteOption[];
    onReset$: Observable<void>;
    allowOnlyPredefinedValues: boolean;
    placeholder: string;
    compareOption?: (option1: AutocompleteOption, option2: AutocompleteOption) => boolean;
    formatChipValue?: (option: string) => string;
    filter: (options: AutocompleteOption[], value: string) => AutocompleteOption[];
    optionsChanged: EventEmitter<AutocompleteOption[]>;
    inputChanged: EventEmitter<string>;
    readonly separatorKeysCodes: readonly [13];
    formCtrl: FormControl<string>;
    filteredOptions: AutocompleteOption[];
    selectedOptions: AutocompleteOption[];
    private _activeAnyOption;
    private readonly destroyRef;
    set activeAnyOption(active: boolean);
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    add(event: MatChipInputEvent): void;
    remove(value: AutocompleteOption): void;
    selected(event: MatAutocompleteSelectedEvent): void;
    /**
     * Determines if a given option is already selected.
     *
     * This method checks if the provided `option` is present in the `selectedOptions` array.
     * If a custom comparison function (`compareOption`) is provided, it uses this function to determine equality.
     * Otherwise, it falls back to using strict equality comparison.
     *
     * @param option - The option to check for selection.
     * @returns `true` if the option is selected, `false` otherwise.
     */
    isOptionSelected(option: AutocompleteOption): boolean;
    private isAdded;
    private isExists;
    private reset;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchChipAutocompleteInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchChipAutocompleteInputComponent, "adf-search-chip-autocomplete-input", never, { "autocompleteOptions": { "alias": "autocompleteOptions"; "required": false; }; "preselectedOptions": { "alias": "preselectedOptions"; "required": false; }; "onReset$": { "alias": "onReset$"; "required": false; }; "allowOnlyPredefinedValues": { "alias": "allowOnlyPredefinedValues"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "compareOption": { "alias": "compareOption"; "required": false; }; "formatChipValue": { "alias": "formatChipValue"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; }, { "optionsChanged": "optionsChanged"; "inputChanged": "inputChanged"; }, never, never, true, never>;
}

/*!
 * @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.
 */

interface TabbedFacetField {
    fields: string[];
    label: string;
    facets: {
        [propName: string]: FacetField;
    };
}

interface SelectedBucket {
    field: FacetField;
    bucket: FacetFieldBucket;
}
declare class SearchFacetFiltersService {
    private readonly queryBuilder;
    private readonly searchService;
    private readonly translationService;
    private readonly categoryService;
    /**
     * All facet field items to be displayed in the component. These are updated according to the response.
     * When a new search is performed, the already existing items are updated with the new bucket count values and
     * the newly received items are added to the responseFacets.
     */
    responseFacets: FacetField[];
    tabbedFacet: TabbedFacetField;
    /** shows the facet chips */
    selectedBuckets: SelectedBucket[];
    private readonly facetQueriesPageSize;
    constructor();
    onDataLoaded(data: any): void;
    private parseFacets;
    private parseFacetItems;
    private parseTabbedFacetField;
    private extractCreatorAndModifier;
    private parseFacetFields;
    private parseFacetIntervals;
    private parseFacetQueries;
    private sortFacets;
    private getResponseBuckets;
    private getResponseQueryBuckets;
    private sortFacetBuckets;
    private getCountValue;
    getBucketCountDisplay(bucket: FacetFieldBucket): string;
    private readonly getFilterByMinCount;
    private getCorrespondingFilterQuery;
    private buildIntervalQuery;
    private findFacet;
    private findResponseFacet;
    private updateExistingBuckets;
    private readonly getBucketFilterFunction;
    private loadCategoryNames;
    unselectFacetBucket(facetField: FacetField, bucket: FacetFieldBucket): void;
    updateSelectedBuckets(): void;
    resetAllSelectedBuckets(): void;
    resetQueryFragments(): void;
    reset(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFacetFiltersService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SearchFacetFiltersService>;
}

declare class SearchFilterComponent {
    queryBuilder: SearchQueryBuilderService;
    facetFiltersService: SearchFacetFiltersService;
    /** Toggles whether to show or not the context facet filters. */
    showContextFacets: boolean;
    facetQueriesLabel: string;
    facetExpanded: {
        default: boolean;
    };
    displayResetButton: boolean;
    constructor();
    shouldExpand(field: FacetField): boolean;
    getBucketCountDisplay(bucket: FacetFieldBucket): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFilterComponent, "adf-search-filter", never, { "showContextFacets": { "alias": "showContextFacets"; "required": false; }; }, {}, never, never, true, never>;
}

declare class SearchChipListComponent {
    facetFiltersService: SearchFacetFiltersService;
    /**
     * Search filter to supply the data for the chips.
     * Not required from 4.5.0 and later versions @deprecated
     */
    searchFilter: SearchFilterComponent;
    /** Flag used to enable the display of a clear-all-filters button. */
    clearAll: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchChipListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchChipListComponent, "adf-search-chip-list", never, { "searchFilter": { "alias": "searchFilter"; "required": false; }; "clearAll": { "alias": "clearAll"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */
declare const DateRangeType: {
    readonly ANY: "ANY";
    readonly IN_LAST: "IN_LAST";
    readonly BETWEEN: "BETWEEN";
};
type DateRangeType = (typeof DateRangeType)[keyof typeof DateRangeType];

/*!
 * @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.
 */
declare const InLastDateType: {
    readonly DAYS: "DAYS";
    readonly WEEKS: "WEEKS";
    readonly MONTHS: "MONTHS";
};
type InLastDateType = (typeof InLastDateType)[keyof typeof InLastDateType];

/*!
 * @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.
 */

interface SearchDateRange {
    dateRangeType: DateRangeType;
    inLastValueType?: InLastDateType;
    inLastValue?: string | number;
    betweenStartDate?: Date;
    betweenEndDate?: Date;
}

declare class SearchDateRangeComponent implements OnInit, AfterViewInit {
    private readonly userPreferencesService;
    private readonly dateAdapter;
    private readonly dateFormatConfig;
    dateFormat: string;
    maxDate: string;
    field: string;
    set initialValue(value: SearchDateRange);
    onReset$: Observable<void>;
    changed: EventEmitter<Partial<SearchDateRange>>;
    valid: EventEmitter<boolean>;
    dateRangeInput: ElementRef;
    private readonly formBuilder;
    form: _angular_forms.FormGroup<{
        dateRangeType: _angular_forms.FormControl<DateRangeType>;
        inLastValueType?: _angular_forms.FormControl<InLastDateType>;
        inLastValue?: _angular_forms.FormControl<string | number>;
        betweenStartDate?: _angular_forms.FormControl<Date>;
        betweenEndDate?: _angular_forms.FormControl<Date>;
    }>;
    betweenStartDateFormControl: _angular_forms.FormControl<Date>;
    betweenEndDateFormControl: _angular_forms.FormControl<Date>;
    convertedMaxDate: Date;
    readonly DateRangeType: {
        readonly ANY: "ANY";
        readonly IN_LAST: "IN_LAST";
        readonly BETWEEN: "BETWEEN";
    };
    readonly InLastDateType: {
        readonly DAYS: "DAYS";
        readonly WEEKS: "WEEKS";
        readonly MONTHS: "MONTHS";
    };
    private readonly destroyRef;
    constructor();
    readonly endDateValidator: (formControl: UntypedFormControl) => {
        [key: string]: boolean;
    } | null;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    private updateValidators;
    private onChange;
    dateChanged(event: Event, formControl: UntypedFormControl): void;
    narrowDownAllowedCharacters(event: Event): void;
    preventIncorrectNumberCharacters(event: KeyboardEvent): boolean;
    reset(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchDateRangeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchDateRangeComponent, "adf-search-date-range", never, { "dateFormat": { "alias": "dateFormat"; "required": false; }; "maxDate": { "alias": "maxDate"; "required": false; }; "field": { "alias": "field"; "required": false; }; "initialValue": { "alias": "initialValue"; "required": false; }; "onReset$": { "alias": "onReset$"; "required": false; }; }, { "changed": "changed"; "valid": "valid"; }, never, never, true, never>;
}

declare class SearchDateRangeTabbedComponent implements SearchWidget, OnInit {
    private readonly translateService;
    private value;
    private readonly queryMapByField;
    private readonly displayValueMapByField;
    private readonly destroyRef;
    private readonly resetSubject$;
    displayValue$: ReplaySubject<string>;
    id: string;
    startValue: SearchDateRange;
    preselectedValues: {
        [key: string]: SearchDateRange;
    };
    settings?: SearchWidgetSettings;
    context?: SearchQueryBuilderService;
    fields: string[];
    tabsValidity: {
        [key: string]: boolean;
    };
    combinedQuery: string;
    combinedDisplayValue: string;
    reset$: rxjs.Observable<void>;
    ngOnInit(): void;
    private setDefaultDateFormatSettings;
    getCurrentValue(): {
        [key: string]: Partial<SearchDateRange>;
    };
    hasValidValue(): boolean;
    reset(updateContext?: boolean): void;
    setValue(value: {
        [key: string]: SearchDateRange;
    }): void;
    getTabLabel(field: string): string;
    submitValues(updateContext?: boolean): void;
    onDateRangedValueChanged(value: Partial<SearchDateRange>, field: string): void;
    private generateQuery;
    private generateDisplayValue;
    private updateQuery;
    private updateDisplayValue;
    private getDisplayLabelForField;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchDateRangeTabbedComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchDateRangeTabbedComponent, "adf-search-date-range-tabbed", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class LiveErrorStateMatcher implements ErrorStateMatcher {
    isErrorState(control: UntypedFormControl | null, form: FormGroupDirective | NgForm | null): boolean;
}

/*!
 * @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.
 */

interface DatetimeRangeValue {
    from: string;
    to: string;
}
interface FormProps {
    from: FormControl<Date>;
    to: FormControl<Date>;
}
declare const DEFAULT_DATETIME_FORMAT: string;
declare class SearchDatetimeRangeComponent implements SearchWidget, OnInit {
    private readonly dateAdapter;
    private readonly dateTimeAdapter;
    from: FormControl<Date>;
    to: FormControl<Date>;
    form: FormGroup<FormProps>;
    matcher: LiveErrorStateMatcher;
    id: string;
    settings?: SearchWidgetSettings;
    context?: SearchQueryBuilderService;
    datetimePickerFormat: string;
    maxDatetime: any;
    fromMaxDatetime: any;
    isActive: boolean;
    startValue: any;
    enableChangeUpdate: boolean;
    displayValue$: ReplaySubject<string>;
    private readonly destroyRef;
    getFromValidationMessage(): string;
    getToValidationMessage(): string;
    ngOnInit(): void;
    apply(model: Partial<{
        from: Date;
        to: Date;
    }>, isValidValue: boolean, updateContext?: boolean): void;
    submitValues(): void;
    hasValidValue(): boolean;
    getCurrentValue(): DatetimeRangeValue;
    updateDisplayValue(): void;
    setValue(parsedDate: string): void;
    clear(): void;
    reset(): void;
    private updateQuery;
    onChangedHandler(event: MatDatetimepickerInputEvent<Date>, formControl: FormControl<Date>): void;
    hasParseError(formControl: FormControl<Date>): boolean;
    forcePlaceholder(event: any): void;
    setFromMaxDatetime(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchDatetimeRangeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchDatetimeRangeComponent, "adf-search-datetime-range", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

interface FacetWidget {
    displayValue$: Subject<string>;
    reset(): void;
    submitValues(): void;
}

declare class SearchFacetFieldComponent implements FacetWidget {
    private readonly queryBuilder;
    private readonly searchFacetFiltersService;
    private readonly translationService;
    field: FacetField;
    displayValue$: Subject<string>;
    get canUpdateOnChange(): boolean;
    onToggleBucket(event: MatCheckboxChange, field: FacetField, bucket: FacetFieldBucket): void;
    selectFacetBucket(field: FacetField, bucket: FacetFieldBucket): void;
    unselectFacetBucket(field: FacetField, bucket: FacetFieldBucket): void;
    canResetSelectedBuckets(field: FacetField): boolean;
    resetSelectedBuckets(field: FacetField): void;
    getBucketCountDisplay(bucket: FacetFieldBucket): string;
    updateDisplayValue(): void;
    reset(): void;
    submitValues(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFacetFieldComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFacetFieldComponent, "adf-search-facet-field", never, { "field": { "alias": "field"; "required": true; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchWidgetContainerComponent implements OnInit, OnDestroy, OnChanges {
    private readonly searchFilterService;
    private readonly injector;
    content: ViewContainerRef;
    id: string;
    selector: string;
    settings: any;
    config: any;
    value: any;
    useHeaderQueryBuilder: boolean;
    componentRef: ComponentRef<any>;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    private setupWidget;
    ngOnDestroy(): void;
    applyInnerWidget(): void;
    setValue(currentValue: string | any): void;
    hasValueSelected(): any;
    getCurrentValue(): any;
    getDisplayValue(): Observable<string> | null;
    resetInnerWidget(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchWidgetContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchWidgetContainerComponent, "adf-search-widget-container", never, { "id": { "alias": "id"; "required": false; }; "selector": { "alias": "selector"; "required": false; }; "settings": { "alias": "settings"; "required": false; }; "config": { "alias": "config"; "required": false; }; "value": { "alias": "value"; "required": false; }; "useHeaderQueryBuilder": { "alias": "useHeaderQueryBuilder"; "required": false; }; }, {}, never, never, true, never>;
}

declare class SearchFilterCardComponent {
    category: SearchCategory;
    widgetContainerComponent: SearchWidgetContainerComponent;
    clear(): void;
    apply(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFilterCardComponent, "adf-search-filter-card", never, { "category": { "alias": "category"; "required": true; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchFilterAutocompleteChipsComponent implements SearchWidget, OnInit {
    private readonly tagService;
    private readonly categoryService;
    private readonly sitesService;
    id: string;
    settings?: SearchWidgetSettings;
    context?: SearchQueryBuilderService;
    options: SearchFilterList<AutocompleteOption[]>;
    startValue: AutocompleteOption[];
    displayValue$: ReplaySubject<string>;
    selectedOptions: AutocompleteOption[];
    enableChangeUpdate: boolean;
    private readonly resetSubject$;
    reset$: Observable<void>;
    private readonly autocompleteOptionsSubject$;
    autocompleteOptions$: Observable<AutocompleteOption[]>;
    private readonly destroyRef;
    constructor();
    ngOnInit(): void;
    reset(updateContext?: boolean): void;
    submitValues(): void;
    hasValidValue(): boolean;
    getCurrentValue(): AutocompleteOption[];
    onOptionsChange(selectedOptions: AutocompleteOption[]): void;
    setValue(value: AutocompleteOption[]): void;
    onInputChange(value: string): void;
    optionComparator(option1: AutocompleteOption, option2: AutocompleteOption): boolean;
    private updateQuery;
    private setOptions;
    private searchForExistingCategories;
    private searchForExistingTags;
    private populateSitesOptions;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterAutocompleteChipsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFilterAutocompleteChipsComponent, "adf-search-filter-autocomplete-chips", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchFacetChipComponent {
    private readonly focusTrapFactory;
    field: FacetField;
    menuContainer: ElementRef;
    menuTrigger: MatMenuTrigger;
    facetFieldComponent: SearchFacetFieldComponent;
    focusTrap: ConfigurableFocusTrap;
    chipIcon: string;
    onMenuOpen(): void;
    onClosed(): void;
    onRemove(): void;
    onApply(): void;
    onEnterKeydown(): void;
    onEscKeydown(): void;
    isPopulated(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFacetChipComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFacetChipComponent, "adf-search-facet-chip", never, { "field": { "alias": "field"; "required": true; }; }, {}, never, never, true, never>;
}

declare class SearchFacetChipTabbedComponent {
    private readonly focusTrapFactory;
    private readonly changeDetectorRef;
    tabbedFacet: TabbedFacetField;
    menuContainer: ElementRef;
    menuTrigger: MatMenuTrigger;
    private readonly resetSubject$;
    private readonly applySubject$;
    displayValue: string;
    reset$: rxjs.Observable<void>;
    apply$: rxjs.Observable<void>;
    focusTrap: ConfigurableFocusTrap;
    chipIcon: string;
    isPopulated: boolean;
    onMenuOpen(): void;
    onClosed(): void;
    onRemove(): void;
    onApply(): void;
    onEnterKeydown(): void;
    onEscKeydown(): void;
    onIsPopulatedEventChange(isPopulated: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFacetChipTabbedComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFacetChipTabbedComponent, "adf-search-facet-chip-tabbed", never, { "tabbedFacet": { "alias": "tabbedFacet"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchFacetTabbedContentComponent implements OnInit, OnChanges, FacetWidget {
    private readonly queryBuilder;
    private readonly translationService;
    private readonly searchFacetFiltersService;
    tabbedFacet: TabbedFacetField;
    onReset$: Observable<void>;
    onApply$: Observable<void>;
    isPopulated: EventEmitter<boolean>;
    displayValue$: EventEmitter<string>;
    private readonly resetSubject$;
    reset$: Observable<void>;
    chipIcon: string;
    autocompleteOptions: {};
    selectedOptions: {};
    private readonly destroyRef;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onOptionsChange(selectedOptions: AutocompleteOption[], field: string): void;
    updateDisplayValue(): void;
    reset(): void;
    submitValues(): void;
    optionComparator(option1: AutocompleteOption, option2: AutocompleteOption): boolean;
    private updateUserFacetBuckets;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFacetTabbedContentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFacetTabbedContentComponent, "adf-search-facet-tabbed-content", never, { "tabbedFacet": { "alias": "tabbedFacet"; "required": true; }; "onReset$": { "alias": "onReset$"; "required": false; }; "onApply$": { "alias": "onApply$"; "required": false; }; }, { "isPopulated": "isPopulated"; "displayValue$": "displayValue$"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchFilterMenuCardComponent {
    close: EventEmitter<any>;
    onClose(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterMenuCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFilterMenuCardComponent, "adf-search-filter-menu-card", never, {}, { "close": "close"; }, never, ["filter-title", "filter-content", "filter-actions"], true, never>;
}

/*!
 * @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.
 */

declare class SearchWidgetChipComponent implements AfterViewInit {
    private readonly cd;
    private readonly focusTrapFactory;
    category: SearchCategory;
    menuContainer: ElementRef;
    menuTriggerEl: ElementRef;
    menuTrigger: MatMenuTrigger;
    widgetContainerComponent: SearchWidgetContainerComponent;
    focusTrap: ConfigurableFocusTrap;
    chipIcon: string;
    ngAfterViewInit(): void;
    onMenuOpen(): void;
    onClosed(): void;
    onRemove(): void;
    onApply(): void;
    onEnterKeydown(): void;
    onEscKeydown(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchWidgetChipComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchWidgetChipComponent, "adf-search-widget-chip", never, { "category": { "alias": "category"; "required": true; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */
interface FilterSearch {
    key: string;
    value: any;
}

/*!
 * @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.
 */

declare class ResponseFacetQueryList extends SearchFilterList<FacetQuery> {
    constructor(items: FacetQuery[], translationService: any, pageSize?: number);
}

/*!
 * @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.
 */

declare class SearchFilterChipsComponent implements OnInit {
    private readonly queryBuilder;
    private readonly facetFiltersService;
    private readonly destroyRef;
    /** Toggles whether to show or not the context facet filters. */
    showContextFacets: boolean;
    facetChipTabbedId: string;
    get categories(): SearchCategory[];
    get tabbedFacet(): TabbedFacetField | null;
    get responseFacets(): FacetField[];
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterChipsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFilterChipsComponent, "adf-search-filter-chips", never, { "showContextFacets": { "alias": "showContextFacets"; "required": false; }; }, {}, never, ["*"], true, never>;
}

/*!
 * @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.
 */

declare class SearchFilterContainerComponent implements OnInit {
    private readonly searchFilterQueryBuilder;
    private readonly translationService;
    private readonly focusTrapFactory;
    private readonly matIconRegistry;
    private readonly sanitizer;
    /** The column the filter will be applied on. */
    col: DataColumn;
    /** The column the filter will be applied on. */
    value: any;
    /** Emitted when a filter value is selected */
    filterChange: EventEmitter<any>;
    widgetContainer: SearchWidgetContainerComponent;
    filterContainer: ElementRef;
    category: SearchCategory;
    focusTrap: ConfigurableFocusTrap;
    initialValue: any;
    ngOnInit(): void;
    onKeyPressed(event: KeyboardEvent, menuTrigger: MatMenuTrigger): void;
    onApply(): void;
    onClearButtonClick(event: Event): void;
    resetSearchFilter(): void;
    getTooltipTranslation(columnTitle: string): string;
    isActive(): boolean;
    onMenuOpen(): void;
    onClosed(): void;
    private registerFilterIcon;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFilterContainerComponent, "adf-search-filter-container", never, { "col": { "alias": "col"; "required": true; }; "value": { "alias": "value"; "required": false; }; }, { "filterChange": "filterChange"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchFilterTabDirective {
    readonly templateRef: TemplateRef<any>;
    name: string;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterTabDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<SearchFilterTabDirective, "[adf-search-filter-tab]", never, { "name": { "alias": "adf-search-filter-tab"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchFilterTabbedComponent implements OnInit, OnDestroy {
    private readonly element;
    private readonly changeDetector;
    tabsContents: QueryList<SearchFilterTabDirective>;
    selectedIndex: number;
    private readonly tabGroup;
    private readonly intersectionObserver;
    ngOnInit(): void;
    ngOnDestroy(): void;
    onTabIndexChanged(index: number): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterTabbedComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFilterTabbedComponent, "adf-search-filter-tabbed", never, {}, {}, ["tabsContents"], never, true, never>;
}

declare class SearchFormComponent {
    private readonly queryBuilder;
    searchForms$: rxjs.ReplaySubject<SearchForm[]>;
    /** Emitted when the form change */
    formChange: EventEmitter<SearchForm>;
    onSelectionChange(form: SearchForm): void;
    getSelected(forms: SearchForm[]): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFormComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchFormComponent, "adf-search-form", never, {}, { "formChange": "formChange"; }, never, never, true, never>;
}

declare class SearchInputComponent implements OnInit {
    private readonly appConfig;
    value: string;
    label: string;
    placeholder: string;
    fields: string[];
    changed: EventEmitter<string>;
    ngOnInit(): void;
    onSearchInputChanged(event: Event): void;
    private formatSearchQuery;
    private isOperator;
    private formatFields;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchInputComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchInputComponent, "adf-search-input", never, { "value": { "alias": "value"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; }, { "changed": "changed"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare const LogicalSearchFields: {
    readonly MATCH_ALL: "matchAll";
    readonly MATCH_ANY: "matchAny";
    readonly EXCLUDE: "exclude";
    readonly MATCH_EXACT: "matchExact";
};
type LogicalSearchFields = (typeof LogicalSearchFields)[keyof typeof LogicalSearchFields];
type LogicalSearchConditionEnumValuedKeys = {
    [T in LogicalSearchFields]: string;
};
type LogicalSearchCondition = LogicalSearchConditionEnumValuedKeys;
declare class SearchLogicalFilterComponent implements SearchWidget, OnInit {
    private readonly translationService;
    id: string;
    settings?: SearchWidgetSettings;
    context?: SearchQueryBuilderService;
    startValue: string;
    searchCondition: LogicalSearchCondition;
    fields: string[];
    LogicalSearchFields: {
        readonly MATCH_ALL: "matchAll";
        readonly MATCH_ANY: "matchAny";
        readonly EXCLUDE: "exclude";
        readonly MATCH_EXACT: "matchExact";
    };
    displayValue$: ReplaySubject<string>;
    private readonly destroyRef;
    ngOnInit(): void;
    submitValues(updateContext?: boolean): void;
    hasValidValue(): boolean;
    getCurrentValue(): LogicalSearchCondition;
    setValue(value: LogicalSearchCondition): void;
    reset(updateContext?: boolean): void;
    private updateDisplayValue;
    private clearSearchInputs;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchLogicalFilterComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchLogicalFilterComponent, "adf-search-logical-filter", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchNumberRangeComponent implements SearchWidget, OnInit {
    from: UntypedFormControl;
    to: UntypedFormControl;
    form: UntypedFormGroup;
    matcher: LiveErrorStateMatcher;
    id: string;
    settings?: SearchWidgetSettings;
    context?: SearchQueryBuilderService;
    field: string;
    format: string;
    isActive: boolean;
    startValue: any;
    validators: Validators;
    enableChangeUpdate: boolean;
    displayValue$: ReplaySubject<string>;
    ngOnInit(): void;
    formValidator(formGroup: UntypedFormGroup): {
        mismatch: boolean;
    };
    apply(model: {
        from: string;
        to: string;
    }, isValid: boolean, updateContext?: boolean): void;
    private formatString;
    submitValues(): void;
    hasValidValue(): boolean;
    getCurrentValue(): any;
    updateDisplayValue(): void;
    setValue(value: any): void;
    clear(updateContext?: boolean): void;
    reset(updateContext?: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchNumberRangeComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchNumberRangeComponent, "adf-search-number-range", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchPanelComponent implements OnInit {
    private readonly contentNodeSelectorPanelService;
    private readonly queryBuilderService;
    ngOnInit(): void;
    hasCustomModels(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchPanelComponent, "adf-search-panel", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */
declare const FileSizeOperator: {
    readonly AT_LEAST: "SEARCH.SEARCH_PROPERTIES.FILE_SIZE_OPERATOR.AT_LEAST";
    readonly AT_MOST: "SEARCH.SEARCH_PROPERTIES.FILE_SIZE_OPERATOR.AT_MOST";
    readonly EXACTLY: "SEARCH.SEARCH_PROPERTIES.FILE_SIZE_OPERATOR.EXACTLY";
};
type FileSizeOperator = (typeof FileSizeOperator)[keyof typeof FileSizeOperator];

/*!
 * @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.
 */
declare class FileSizeUnit {
    readonly abbreviation: string;
    readonly bytes: number;
    static readonly KB: FileSizeUnit;
    static readonly MB: FileSizeUnit;
    static readonly GB: FileSizeUnit;
    private constructor();
}

/*!
 * @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.
 */

interface FileSizeCondition {
    fileSizeOperator: FileSizeOperator;
    fileSize?: number;
    fileSizeUnit: FileSizeUnit;
}

/*!
 * @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.
 */

interface SearchProperties {
    fileSizeCondition: FileSizeCondition;
    fileExtensions: string[];
}

/*!
 * @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.
 */

declare class SearchPropertiesComponent implements OnInit, AfterViewChecked, SearchWidget {
    private readonly translateService;
    id: string;
    settings?: SearchWidgetSettings;
    context?: SearchQueryBuilderService;
    startValue: SearchProperties;
    displayValue$: ReplaySubject<string>;
    autocompleteOptions: AutocompleteOption[];
    preselectedOptions: AutocompleteOption[];
    private readonly formBuilder;
    private readonly _form;
    private readonly _fileSizeOperators;
    private readonly _fileSizeUnits;
    private readonly canvas;
    private _fileSizeOperatorsMaxWidth;
    private _selectedExtensions;
    private readonly _reset$;
    private sizeField;
    private nameField;
    fileSizeOperatorSelectElement: ElementRef;
    get form(): SearchPropertiesComponent['_form'];
    get fileSizeOperators(): string[];
    get fileSizeUnits(): FileSizeUnit[];
    get fileSizeOperatorsMaxWidth(): number;
    get reset$(): Subject<void>;
    get selectedExtensions(): AutocompleteOption[];
    set selectedExtensions(extensions: AutocompleteOption[]);
    private readonly destroyRef;
    ngOnInit(): void;
    ngAfterViewChecked(): void;
    narrowDownAllowedCharacters(event: Event): void;
    clearNumberFieldWhenInvalid(event: FocusEvent): void;
    preventIncorrectNumberCharacters(event: KeyboardEvent): boolean;
    compareFileExtensions(extension1: AutocompleteOption, extension2: AutocompleteOption): boolean;
    getExtensionWithoutDot(extension: string): string;
    filterExtensions: (extensions: AutocompleteOption[], filterValue: string) => AutocompleteOption[];
    reset(updateContext?: boolean): void;
    submitValues(updateContext?: boolean): void;
    hasValidValue(): boolean;
    getCurrentValue(): SearchProperties;
    setValue(searchProperties: SearchProperties): void;
    private updateSettingsAndContext;
    private parseToAutocompleteOptions;
    private parseFromAutocompleteOptions;
    private getOperatorNameWidth;
    private getCssStyle;
    private getCanvasFont;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchPropertiesComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchPropertiesComponent, "adf-search-properties", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

interface SearchRadioOption {
    name: string;
    value: string;
}
declare class SearchRadioComponent implements SearchWidget, OnInit {
    /** The value of the selected radio button. */
    value: string;
    id: string;
    settings: SearchWidgetSettings;
    context: SearchQueryBuilderService;
    options: SearchFilterList<SearchRadioOption>;
    pageSize: number;
    isActive: boolean;
    startValue: any;
    enableChangeUpdate: boolean;
    displayValue$: ReplaySubject<string>;
    constructor();
    ngOnInit(): void;
    private getSelectedValue;
    submitValues(updateContext?: boolean): void;
    hasValidValue(): boolean;
    setValue(newValue: string): void;
    getCurrentValue(): string;
    updateDisplayValue(): void;
    changeHandler(event: MatRadioChange): void;
    clear(): void;
    reset(updateContext?: boolean): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchRadioComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchRadioComponent, "adf-search-radio", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchSliderComponent implements SearchWidget, OnInit {
    /** The numeric value represented by the slider. */
    value: number | null;
    isActive?: boolean;
    startValue: any;
    id: string;
    settings: SearchWidgetSettings;
    context: SearchQueryBuilderService;
    step: number;
    min: number;
    max: number;
    thumbLabel: boolean;
    enableChangeUpdate: boolean;
    displayValue$: ReplaySubject<string>;
    private readonly destroyRef;
    ngOnInit(): void;
    clear(): void;
    reset(updateContext?: boolean): void;
    onChangedHandler(): void;
    submitValues(): void;
    hasValidValue(): boolean;
    getCurrentValue(): number;
    setValue(value: any): void;
    private updateQuery;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchSliderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchSliderComponent, "adf-search-slider", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class SearchTextComponent implements SearchWidget, OnInit {
    /** The content of the text box. */
    value: string;
    id: string;
    settings: SearchWidgetSettings;
    context: SearchQueryBuilderService;
    startValue: string;
    isActive: boolean;
    enableChangeUpdate: boolean;
    displayValue$: ReplaySubject<string>;
    private readonly destroyRef;
    ngOnInit(): void;
    clear(): void;
    reset(updateContext?: boolean): void;
    onChangedHandler(event: any): void;
    private updateQuery;
    submitValues(): void;
    hasValidValue(): boolean;
    getCurrentValue(): string;
    setValue(value: string): void;
    private getSearchPrefix;
    private getSearchSuffix;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchTextComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchTextComponent, "adf-search-text", never, { "value": { "alias": "value"; "required": false; }; }, {}, never, never, true, never>;
}

declare class EmptySearchResultComponent {
    static ɵfac: i0.ɵɵFactoryDeclaration<EmptySearchResultComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<EmptySearchResultComponent, "adf-empty-search-result", never, {}, {}, never, ["*"], true, never>;
}

declare class ResetSearchDirective {
    private readonly filterService;
    onClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ResetSearchDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<ResetSearchDirective, "[adf-reset-search]", never, {}, {}, never, never, true, never>;
}

declare class SearchComponent implements SearchComponentInterface, AfterContentInit, OnChanges {
    private readonly searchService;
    private readonly _elementRef;
    panel: ElementRef;
    template: TemplateRef<any>;
    /** Function that maps an option's value to its display value in the trigger. */
    displayWith: ((value: any) => string) | null;
    /** Maximum number of results to show in the search. */
    maxResults: number;
    /** Number of results to skip from the results pagination. */
    skipResults: number;
    /**
     * Search term to use when executing the search. Updating this value will
     * run a new search and update the results.
     */
    searchTerm: string;
    /** CSS class for display. */
    set classList(classList: string);
    /** Emitted when search results have fully loaded. */
    resultLoaded: EventEmitter<NodePaging>;
    /** Emitted when an error occurs. */
    error: EventEmitter<any>;
    showPanel: boolean;
    results: NodePaging;
    get isOpen(): boolean;
    set isOpen(value: boolean);
    _isOpen: boolean;
    keyPressedStream: Subject<string>;
    _classList: {
        [key: string]: boolean;
    };
    constructor();
    ngAfterContentInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    resetResults(): void;
    reload(): void;
    private cleanResults;
    private loadSearchResults;
    onSearchDataLoaded(resultSetPaging: ResultSetPaging): void;
    onSearchDataError(error: {
        status: number;
    }): void;
    hidePanel(): void;
    setVisibility(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchComponent, "adf-search", ["searchAutocomplete"], { "displayWith": { "alias": "displayWith"; "required": false; }; "maxResults": { "alias": "maxResults"; "required": false; }; "skipResults": { "alias": "skipResults"; "required": false; }; "searchTerm": { "alias": "searchTerm"; "required": false; }; "classList": { "alias": "class"; "required": false; }; }, { "resultLoaded": "resultLoaded"; "error": "error"; }, ["template"], never, true, never>;
}

/*!
 * @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.
 */

declare class SearchControlComponent {
    authService: AuthenticationService;
    private readonly thumbnailService;
    /** Toggles highlighting of the search term in the results. */
    highlight: boolean;
    /** Type of the input field to render, e.g. "search" or "text" (default). */
    inputType: string;
    /** Toggles "find-as-you-type" suggestions for possible matches. */
    liveSearchEnabled: boolean;
    /** Toggles auto-completion of the search input field. */
    autocomplete: boolean;
    /**
     * Toggles whether to use an expanding search control. If false
     * then a regular input is used.
     */
    expandable: boolean;
    /** Maximum number of results to show in the live search. */
    liveSearchMaxResults: number;
    /**
     * Emitted when the search is submitted by pressing the ENTER key.
     * The search term is provided as the value of the event.
     */
    submit: EventEmitter<any>;
    /**
     * Emitted when the search term is changed. The search term is provided
     * in the 'value' property of the returned object.  If the term is less
     * than three characters in length then it is truncated to an empty
     * string.
     */
    searchChange: EventEmitter<string>;
    /** Emitted when a file item from the list of "find-as-you-type" results is selected. */
    optionClicked: EventEmitter<any>;
    searchTextInput: SearchTextInputComponent;
    searchAutocomplete: SearchComponent;
    private readonly listResultElement;
    emptySearchTemplate: EmptySearchResultComponent;
    focusSubject: Subject<FocusEvent>;
    noSearchResultTemplate: TemplateRef<any>;
    searchTerm: string;
    isNoSearchTemplatePresent(): boolean;
    isLoggedIn(): boolean;
    inputChange(value: string): void;
    getMimeTypeIcon(node: NodeEntry): string;
    getMimeType(node: NodeEntry): string;
    elementClicked(item: any): void;
    onFocus(event: FocusEvent): void;
    onBlur(event: FocusEvent): void;
    onSelectFirstResult(): void;
    onRowArrowDown(event: Event): void;
    onRowArrowUp(event: Event): void;
    onReset(status: boolean): void;
    private isListElement;
    private getNextElementSibling;
    private getPreviousElementSibling;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchControlComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<SearchControlComponent, "adf-search-control", never, { "highlight": { "alias": "highlight"; "required": false; }; "inputType": { "alias": "inputType"; "required": false; }; "liveSearchEnabled": { "alias": "liveSearchEnabled"; "required": false; }; "autocomplete": { "alias": "autocomplete"; "required": false; }; "expandable": { "alias": "expandable"; "required": false; }; "liveSearchMaxResults": { "alias": "liveSearchMaxResults"; "required": false; }; }, { "submit": "submit"; "searchChange": "searchChange"; "optionClicked": "optionClicked"; }, ["emptySearchTemplate"], ["*"], true, never>;
}

/*!
 * @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.
 */

declare class SearchTermValidator {
    static minAlphanumericChars(minChars: number): (control: UntypedFormControl) => {
        hasMinAlphanumericChars: boolean;
    };
}

/*!
 * @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.
 */

declare const fakeSearch: {
    list: NodePagingList;
};
declare const mockError: {
    error: {
        errorKey: string;
        statusCode: number;
        briefSummary: string;
        stackTrace: string;
        descriptionURL: string;
    };
};
declare const searchMockApi: any;

/*!
 * @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.
 */

interface SearchConfigurationInterface {
    /**
     * Generates a query object with custom search parameters.
     *
     * @param searchTerm Term text to search for
     * @param maxResults Maximum number of search results to show in a page
     * @param skipCount The offset of the start of the page within the results list
     * @returns Query body defined by the parameters
     */
    generateQueryBody(searchTerm: string, maxResults: number, skipCount: number): SearchRequest;
}

declare class SearchConfigurationService implements SearchConfigurationInterface {
    /**
     * Generates a request object with custom search parameters.
     *
     * @param searchTerm Term text to search for
     * @param maxResults Maximum number of search results to show in a page
     * @param skipCount The offset of the start of the page within the results list
     * @returns Query body defined by the parameters
     */
    generateQueryBody(searchTerm: string, maxResults: number, skipCount: number): SearchRequest;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchConfigurationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SearchConfigurationService>;
}

/*!
 * @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.
 */

declare class SearchFilterService {
    /**
     * Contains string-to-type mappings for registered widgets.
     */
    widgets: {
        [id: string]: Type<any>;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchFilterService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SearchFilterService>;
}

declare class SearchHeaderQueryBuilderService extends BaseQueryBuilderService {
    private readonly nodeApiService;
    private readonly customSources;
    activeFilters: FilterSearch[];
    constructor();
    isFilterServiceActive(): boolean;
    loadConfiguration(): SearchConfiguration;
    setupCurrentPagination(maxItems: number, skipCount: number): void;
    setActiveFilter(columnActivated: string, filterValue: string): void;
    resetActiveFilters(): void;
    getActiveFilters(): FilterSearch[];
    isNoFilterActive(): boolean;
    removeActiveFilter(columnRemoved: string): void;
    setSorting(dataSorting: DataSorting[]): void;
    private getSortingFieldFromColumnName;
    getCategoryForColumn(columnKey: string): SearchCategory;
    getOperatorForFilterId(id: string): string | undefined;
    setCurrentRootFolderId(currentFolderId: string): void;
    isCustomSourceNode(currentNodeId: string): boolean;
    getNodeIdForCustomSource(customSourceId: string): Observable<Node>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchHeaderQueryBuilderService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SearchHeaderQueryBuilderService>;
}

declare class SearchService {
    private readonly apiService;
    private readonly searchConfigurationService;
    dataLoaded: Subject<ResultSetPaging>;
    readonly queriesApi: QueriesApi;
    readonly searchApi: SearchApi;
    /**
     * Gets a list of nodes that match the given search criteria.
     *
     * @param term Term to search for
     * @param options Options for delivery of the search results
     * @returns List of nodes resulting from the search
     */
    getNodeQueryResults(term: string, options?: SearchOptions): Observable<NodePaging>;
    /**
     * Performs a search.
     *
     * @param searchTerm Term to search for
     * @param maxResults Maximum number of items in the list of results
     * @param skipCount Number of higher-ranked items to skip over in the list
     * @returns List of search results
     */
    search(searchTerm: string, maxResults: number, skipCount: number): Observable<ResultSetPaging>;
    /**
     * Performs a search with its parameters supplied by a request object.
     *
     * @param queryBody Object containing the search parameters
     * @returns List of search results
     */
    searchByQueryBody(queryBody: SearchRequest): Observable<ResultSetPaging>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SearchService>;
}
interface SearchOptions {
    /** The number of entities that exist in the collection before those included in this list. */
    skipCount?: number;
    /** The maximum number of items to return in the list. */
    maxItems?: number;
    /** The id of the node to start the search from. Supports the aliases -my-, -root- and -shared-. */
    rootNodeId?: string;
    /** Restrict the returned results to only those of the given node type and its sub-types. */
    nodeType?: string;
    /**
     * Return additional information about the node. The available optional fields are:
     * `allowableOperations`, `aspectNames`, `isLink`, `isLocked`, `path` and `properties`.
     */
    include?: string[];
    /**
     * String array to control the order of the entities returned in a list. You can use this
     * parameter to sort the list by one or more fields. Each field has a default sort order,
     * which is normally ascending order (but see the JS-API docs to check if any fields used
     * in a method have a descending default search order). To sort the entities in a specific
     * order, you can use the "ASC" and "DESC" keywords for any field.
     */
    orderBy?: string[];
    /**
     * List of field names. You can use this parameter to restrict the fields returned within
     * a response if, for example, you want to save on overall bandwidth. The list applies to a
     * returned individual entity or entries within a collection. If the API method also supports
     * the `include` parameter, then the fields specified in the include parameter are returned in
     * addition to those specified in the fields parameter.
     */
    fields?: string[];
}

/*!
 * @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.
 */

declare const ADF_SEARCH_CONFIGURATION: InjectionToken<SearchConfiguration>;

declare const CONTENT_SEARCH_DIRECTIVES: readonly [typeof SearchCheckListComponent, typeof SearchChipAutocompleteInputComponent, typeof SearchChipListComponent, typeof EmptySearchResultComponent, typeof SearchFilterComponent, typeof SearchFilterCardComponent, typeof SearchWidgetContainerComponent, typeof SearchTextComponent, typeof SearchFilterAutocompleteChipsComponent, typeof SearchDatetimeRangeComponent, typeof SearchFacetFieldComponent, typeof ResetSearchDirective, typeof SearchDateRangeComponent, typeof SearchFilterMenuCardComponent, typeof SearchFacetChipTabbedComponent, typeof SearchFacetTabbedContentComponent, typeof SearchFilterTabbedComponent, typeof SearchFilterTabDirective, typeof SearchDateRangeTabbedComponent, typeof SearchSliderComponent, typeof SearchNumberRangeComponent, typeof SearchPanelComponent, typeof SearchRadioComponent, typeof SearchFilterContainerComponent, typeof SearchFormComponent, typeof SearchFilterChipsComponent, typeof SearchWidgetChipComponent, typeof SearchFacetChipComponent, typeof SearchLogicalFilterComponent, typeof SearchPropertiesComponent, typeof SearchComponent, typeof SearchControlComponent];
/** @deprecated use `...CONTENT_SEARCH_DIRECTIVES` or import the specific component */
declare class SearchModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<SearchModule, never, [typeof SearchCheckListComponent, typeof SearchChipAutocompleteInputComponent, typeof SearchChipListComponent, typeof EmptySearchResultComponent, typeof SearchFilterComponent, typeof SearchFilterCardComponent, typeof SearchWidgetContainerComponent, typeof SearchTextComponent, typeof SearchFilterAutocompleteChipsComponent, typeof SearchDatetimeRangeComponent, typeof SearchFacetFieldComponent, typeof ResetSearchDirective, typeof SearchDateRangeComponent, typeof SearchFilterMenuCardComponent, typeof SearchFacetChipTabbedComponent, typeof SearchFacetTabbedContentComponent, typeof SearchFilterTabbedComponent, typeof SearchFilterTabDirective, typeof SearchDateRangeTabbedComponent, typeof SearchSliderComponent, typeof SearchNumberRangeComponent, typeof SearchPanelComponent, typeof SearchRadioComponent, typeof SearchFilterContainerComponent, typeof SearchFormComponent, typeof SearchFilterChipsComponent, typeof SearchWidgetChipComponent, typeof SearchFacetChipComponent, typeof SearchLogicalFilterComponent, typeof SearchPropertiesComponent, typeof SearchComponent, typeof SearchControlComponent], [typeof SearchCheckListComponent, typeof SearchChipAutocompleteInputComponent, typeof SearchChipListComponent, typeof EmptySearchResultComponent, typeof SearchFilterComponent, typeof SearchFilterCardComponent, typeof SearchWidgetContainerComponent, typeof SearchTextComponent, typeof SearchFilterAutocompleteChipsComponent, typeof SearchDatetimeRangeComponent, typeof SearchFacetFieldComponent, typeof ResetSearchDirective, typeof SearchDateRangeComponent, typeof SearchFilterMenuCardComponent, typeof SearchFacetChipTabbedComponent, typeof SearchFacetTabbedContentComponent, typeof SearchFilterTabbedComponent, typeof SearchFilterTabDirective, typeof SearchDateRangeTabbedComponent, typeof SearchSliderComponent, typeof SearchNumberRangeComponent, typeof SearchPanelComponent, typeof SearchRadioComponent, typeof SearchFilterContainerComponent, typeof SearchFormComponent, typeof SearchFilterChipsComponent, typeof SearchWidgetChipComponent, typeof SearchFacetChipComponent, typeof SearchLogicalFilterComponent, typeof SearchPropertiesComponent, typeof SearchComponent, typeof SearchControlComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<SearchModule>;
}

/*!
 * @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.
 */
declare class AllowableOperationsEnum extends String {
    static DELETE: string;
    static UPDATE: string;
    static CREATE: string;
    static COPY: string;
    static LOCK: string;
    static UPDATEPERMISSIONS: string;
    static NOT_DELETE: string;
    static NOT_UPDATE: string;
    static NOT_CREATE: string;
    static NOT_UPDATEPERMISSIONS: string;
}

/*!
 * @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.
 */

declare class PermissionStyleModel {
    css: string;
    permission: AllowableOperationsEnum;
    isFolder: boolean;
    isFile: boolean;
    constructor(css: string, permission: AllowableOperationsEnum, isFile?: boolean, isFolder?: boolean);
}

/*!
 * @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.
 */
declare class PermissionsEnum extends String {
    static CONTRIBUTOR: string;
    static CONSUMER: string;
    static COLLABORATOR: string;
    static MANAGER: string;
    static EDITOR: string;
    static COORDINATOR: string;
    static NOT_CONTRIBUTOR: string;
    static NOT_CONSUMER: string;
    static NOT_COLLABORATOR: string;
    static NOT_MANAGER: string;
    static NOT_EDITOR: string;
    static NOT_COORDINATOR: string;
}

interface FolderCreatedEvent {
    name: string;
    relativePath?: string;
    parentId?: string;
    node?: NodeEntry;
}
declare class ContentService {
    authService: AuthenticationService;
    apiService: AlfrescoApiService;
    private readonly thumbnailService;
    folderCreated: Subject<FolderCreatedEvent>;
    folderCreate: Subject<Node>;
    folderEdit: Subject<Node>;
    readonly contentApi: ContentApi;
    /**
     * Gets a content URL for the given node.
     *
     * @param node Node or Node ID to get URL for.
     * @param attachment Toggles whether to retrieve content as an attachment for download
     * @param ticket Custom ticket to use for authentication
     * @returns URL string or `null`
     */
    getContentUrl(node: NodeEntry | string, attachment?: boolean, ticket?: string): string;
    getDocumentThumbnailUrl(nodeId: string, attachment?: boolean, ticket?: string): string;
    /**
     * Checks if the user has permission on that node
     *
     * @param node Node to check permissions
     * @param permission Required permission type
     * @param userId Optional current user id will be taken by default
     * @returns True if the user has the required permissions, false otherwise
     */
    hasPermissions(node: Node, permission: PermissionsEnum | string, userId?: string): boolean;
    /**
     * Checks if the user has permissions on that node
     *
     * @param node Node to check allowableOperations
     * @param allowableOperation Create, delete, update, updatePermissions, !create, !delete, !update, !updatePermissions
     * @returns True if the user has the required permissions, false otherwise
     */
    hasAllowableOperations(node: Node, allowableOperation: AllowableOperationsEnum | string): boolean;
    getNodeIcon(node: Node): string;
    private getFolderIcon;
    isSmartFolder(node: Node): boolean;
    isRuleFolder(node: Node): boolean;
    isLinkFolder(node: Node): boolean;
    private hasAspect;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentService>;
}

/*!
 * @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.
 */

declare const ERR_OBJECT_NOT_FOUND: string;
declare class ShareDataRow implements DataRow {
    private obj;
    private readonly contentService;
    private readonly permissionsStyle;
    private readonly thumbnailService?;
    private readonly allowDropFiles?;
    cache: {
        [key: string]: any;
    };
    isSelected: boolean;
    isSelectable: boolean;
    isDropTarget: boolean;
    cssClass: string;
    id: string;
    get node(): NodeEntry;
    set node(value: NodeEntry);
    constructor(obj: NodeEntry, contentService: ContentService, permissionsStyle: PermissionStyleModel[], thumbnailService?: ThumbnailService, allowDropFiles?: boolean);
    checkNodeTypeAndPermissions(nodeEntry: NodeEntry): boolean;
    getPermissionClass(nodeEntity: NodeEntry): string;
    private applyPermissionStyleToFile;
    private applyPermissionStyleToFolder;
    isFolderAndHasPermissionToUpload(nodeEntry: NodeEntry): boolean;
    isFileAndHasParentFolderPermissionToUpload(nodeEntry: NodeEntry): boolean;
    isFile(nodeEntry: NodeEntry): boolean;
    isFolder(nodeEntry: NodeEntry): boolean;
    cacheValue(key: string, value: any): any;
    getValue(key: string): any;
    imageErrorResolver(): any;
    hasValue(key: string): boolean;
    getId(): string;
}

/*!
 * @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.
 */

type RowFilter = (value: ShareDataRow, index: number, array: ShareDataRow[]) => any;

/*!
 * @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.
 */

declare const ERR_ROW_NOT_FOUND: string;
declare const ERR_COL_NOT_FOUND: string;
declare class ShareDataTableAdapter implements DataTableAdapter {
    private readonly thumbnailService;
    private readonly contentService;
    private _sortingMode;
    private sorting;
    private rows;
    private columns;
    private filter;
    private imageResolver;
    thumbnails: boolean;
    permissionsStyle: PermissionStyleModel[];
    selectedRow: DataRow;
    allowDropFiles: boolean;
    set sortingMode(value: string);
    get sortingMode(): string;
    constructor(thumbnailService: ThumbnailService, contentService: ContentService, schema?: DataColumn[], sorting?: DataSorting, sortingMode?: string, allowDropFiles?: boolean);
    getColumnType(_row: DataRow, col: DataColumn): string;
    getRows(): Array<DataRow>;
    setRows(rows: Array<DataRow>): void;
    getColumns(): Array<DataColumn>;
    setColumns(columns: Array<DataColumn>): void;
    getValue(row: DataRow, col: DataColumn): any;
    /**
     * Gets a thumbnail URL for the given document node.
     *
     * @param node Node or Node ID to get URL for.
     * @param attachment Toggles whether to retrieve content as an attachment for download
     * @param ticket Custom ticket to use for authentication
     * @returns URL string
     */
    private getDocumentThumbnailUrl;
    getSorting(): DataSorting;
    setSorting(sorting: DataSorting): void;
    sort(key?: string, direction?: string): void;
    setFilter(filter: RowFilter): void;
    setImageResolver(resolver: any): void;
    private getFolderIcon;
    isSmartFolder(node: any): boolean;
    isRuleFolder(node: any): boolean;
    isALinkFolder(node: any): boolean;
    private getNodeAspectNames;
    private sortRows;
    loadPage(nodePaging: NodePaging, merge?: boolean, allowDropFiles?: boolean): void;
    getSelectedRows(): DataRow[];
    getRowByNodeId(nodeId: string): DataRow;
}

/*!
 * @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.
 */
declare class ContentActionModel {
    icon: string;
    title: string;
    handler: ContentActionHandler;
    execute: (...args: any[]) => void;
    target: string;
    permission: string;
    disableWithNoPermission: boolean;
    disabled: boolean | ((...args: any[]) => boolean);
    visible: boolean | ((...args: any[]) => boolean);
    constructor(obj?: any);
}
declare const ContentActionTarget: {
    readonly Document: "document";
    readonly Folder: "folder";
    readonly All: "all";
};
type ContentActionTarget = (typeof ContentActionTarget)[keyof typeof ContentActionTarget];
type ContentActionHandler = (obj: any, target?: any, permission?: string) => any;

/*!
 * @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.
 */

declare class NodeEntityEvent extends BaseEvent<NodeEntry> {
    constructor(nodeEntry: NodeEntry);
}
declare class NodeEntryEvent extends BaseEvent<Node> {
    constructor(node: Node);
}

/*!
 * @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.
 */

declare class DocumentListComponent extends DataTableSchema implements OnInit, OnChanges, AfterContentInit, PaginatedComponent {
    private readonly documentListService;
    private readonly elementRef;
    private readonly appConfig;
    private readonly userPreferencesService;
    private readonly contentService;
    private readonly thumbnailService;
    private readonly alfrescoApiService;
    private readonly nodeService;
    private readonly dataTableService;
    private readonly lockService;
    private readonly dialog;
    static SINGLE_CLICK_NAVIGATION: string;
    static DOUBLE_CLICK_NAVIGATION: string;
    DEFAULT_PAGINATION: Pagination;
    DEFAULT_SORTING: DataSorting[];
    columnList: DataColumnListComponent;
    customLoadingContent: CustomLoadingContentTemplateDirective;
    customNoPermissionsTemplate: CustomNoPermissionTemplateDirective;
    customNoContentTemplate: CustomEmptyContentTemplateDirective;
    /** Include additional information about the node in the server request. For example: association, isLink, isLocked and others. */
    includeFields: string[];
    /**
     * Filters the Node list using the *where* condition of the REST API
     * (for example, isFolder=true). See the REST API documentation for more information.
     */
    where: string;
    /**
     * Specifies additional filters to apply (joined with **AND**). Applied for recent files only.
     */
    filters: string[];
    /**
     * Define a set of CSS styles to apply depending on the permission
     * of the user on that node. See the Permission Style model
     * page for further details and examples.
     */
    permissionsStyle: PermissionStyleModel[];
    /** The default route for all the location-based columns (if declared). */
    locationFormat: string;
    /** Toggles navigation to folder content or file preview */
    navigate: boolean;
    /** Toggles the header */
    showHeader: ShowHeaderMode;
    /**
     * User interaction for folder navigation or file preview.
     * Valid values are "click" and "dblclick". Default value: "dblclick"
     */
    navigationMode: string;
    /** Show document thumbnails rather than icons */
    thumbnails: boolean;
    /**
     * Row selection mode. Can be null, `single` or `multiple`. For `multiple` mode,
     * you can use Cmd (macOS) or Ctrl (Win) modifier key to toggle selection for multiple rows.
     */
    selectionMode: string;
    /** Toggles multiselect mode */
    multiselect: boolean;
    /** Toggles content actions for each row */
    contentActions: boolean;
    /** Position of the content actions dropdown menu. Can be set to "left" or "right". */
    contentActionsPosition: string;
    /** Toggles context menus for each row */
    contextMenuActions: boolean;
    /** Custom image for empty folder. Default value: './assets/images/empty_doc_lib.svg' */
    emptyFolderImageUrl: string;
    /**
     * When true, this enables you to drop files directly into subfolders shown
     * as items in the list or into another file to trigger updating it's version.
     * When false, the dropped file will be added to the
     * current folder (ie, the one containing all the items shown in the list).
     * See the Upload directive for further details about how the file drop is
     * handled.
     */
    allowDropFiles: boolean;
    /**
     * Defines default sorting. The format is an array of 2 strings `[key, direction]`
     * i.e. `['name', 'desc']` or `['name', 'asc']`. Set this value only if you want to
     * override the default sorting detected by the component based on columns.
     */
    sorting: string[] | DataSorting;
    /**
     * Defines default sorting. The format is an array of strings `[key direction, otherKey otherDirection]`
     * i.e. `['name desc', 'nodeType asc']` or `['name asc']`. Set this value if you want a base
     * rule to be added to the sorting apart from the one driven by the header.
     */
    additionalSorting: DataSorting;
    /**
     * Defines sorting mode. Can be either `client` (items in the list
     * are sorted client-side) or `server` (the ordering supplied by the
     * server is used without further client-side sorting).
     * Note that the `server` option *does not* request the server to sort the data
     * before delivering it.
     */
    sortingMode: 'server' | 'client';
    /**
     * The inline style to apply to every row. See
     * the Angular NgStyle
     * docs for more details and usage examples.
     */
    rowStyle: {
        [key: string]: any;
    };
    /** The CSS class to apply to every row */
    rowStyleClass: string;
    /**
     * Toggles the loading state and animated spinners for the component. Used in
     * combination with `navigate=false` to perform custom navigation and loading
     * state indication.
     */
    loading: boolean;
    _rowFilter: RowFilter | null;
    /**
     * Custom function to choose whether to show or hide rows.
     * See the [Row Filter Model](row-filter.model.md) page for
     * more information.
     */
    set rowFilter(rowFilter: RowFilter);
    get rowFilter(): RowFilter;
    /**
     * Custom function to choose image file paths to show. See the
     * [Image Resolver Model](image-resolver.model.md) page for
     * more information.
     */
    imageResolver: any | null;
    /** Toggles the sticky header mode. */
    stickyHeader: boolean;
    /** Toggles the header filters mode. */
    headerFilters: boolean;
    /** Initial value for filter. */
    filterValue: any;
    /** The ID of the folder node to display or a reserved string alias for special sources */
    currentFolderId: string;
    /**
     * Array of nodes to be pre-selected. All nodes in the
     * array are pre-selected in multi selection mode, but only the first node
     * is pre-selected in single selection mode.
     */
    preselectNodes: NodeEntry[];
    /** The Document list will show all the nodes contained in the NodePaging entity */
    node: NodePaging;
    /** Default value is stored in the user preference settings. Use this only if you are not using pagination. */
    maxItems: number;
    /** Key of columns preset set in extension.json  */
    columnsPresetKey?: string;
    /** Sets columns visibility for DataTableSchema */
    set setColumnsVisibility(columnsVisibility: {
        [columnId: string]: boolean;
    } | undefined);
    /** Sets columns width for DataTableSchema */
    set setColumnsWidths(columnsWidths: {
        [columnId: string]: number;
    } | undefined);
    /** Sets columns order for DataTableSchema */
    set setColumnsOrder(columnsOrder: string[] | undefined);
    /** Limit of possible visible columns, including "$thumbnail" column if provided */
    maxColumnsVisible?: number;
    /** Enables column resizing for datatable */
    isResizingEnabled: boolean;
    /** Enables blur when resizing datatable columns */
    blurOnResize: boolean;
    /** Display checkboxes in datatable rows on hover only */
    displayCheckboxesOnHover: boolean;
    /** Display drag and drop hint. */
    displayDragAndDropHint: boolean;
    /**
     * Indicates if the data is provided externally.
     * If true the component won't fetch data itself
     */
    isDataProvidedExternally: boolean;
    /** Emitted when the user clicks a list node */
    nodeClick: EventEmitter<NodeEntityEvent>;
    /** Emitted when the user double-clicks a list node */
    nodeDblClick: EventEmitter<NodeEntityEvent>;
    /** Emitted when the current display folder changes */
    folderChange: EventEmitter<NodeEntryEvent>;
    /**
     * Emitted when the user acts upon files with either single or double click
     * (depends on `navigation-mode`). Useful for integration with the
     * Viewer component.
     */
    preview: EventEmitter<NodeEntityEvent>;
    /** Emitted when the Document List has loaded all items and is ready for use */
    ready: EventEmitter<NodePaging>;
    /** Emitted when the API fails to get the Document List data */
    error: EventEmitter<any>;
    /** Emitted when the node selection change */
    nodeSelected: EventEmitter<NodeEntry[]>;
    /** Emitted when a filter value is selected */
    filterSelection: EventEmitter<FilterSearch[]>;
    /** Emitted when column widths change */
    columnsWidthChanged: EventEmitter<{
        [columnId: string]: number;
    }>;
    /** Emitted when columns visibility change */
    columnsVisibilityChanged: EventEmitter<{
        [columnId: string]: boolean;
    }>;
    /** Emitted when columns order change */
    columnsOrderChanged: EventEmitter<string[]>;
    /** Emitted when the selected row items count in the table changed. */
    selectedItemsCountChanged: EventEmitter<number>;
    dataTable: DataTableComponent;
    actions: ContentActionModel[];
    contextActionHandler: Subject<unknown>;
    data: ShareDataTableAdapter;
    noPermission: boolean;
    selection: NodeEntry[];
    $folderNode: Subject<Node>;
    allowFiltering: boolean;
    orderBy: string[];
    preselectedRows: DataRow[];
    folderNode: Node;
    private readonly _pagination;
    pagination: BehaviorSubject<PaginationModel>;
    sortingSubject: BehaviorSubject<DataSorting[]>;
    private rowMenuCache;
    private loadingTimeout;
    private readonly destroyRef;
    readonly nodesApi: NodesApi;
    constructor();
    getContextActions(node: NodeEntry): {
        model: ContentActionModel;
        node: NodeEntry;
        subject: Subject<unknown>;
    }[];
    private getDefaultSorting;
    isMobile(): boolean;
    isEmpty(): boolean;
    ngOnInit(): void;
    ngAfterContentInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    reload(hideLoadingSpinner?: boolean): void;
    reloadWithoutResettingSelection(hideLoadingSpinner?: boolean): void;
    contextActionCallback(action: any): void;
    getNodeActions(node: NodeEntry | any): ContentActionModel[];
    private refreshAction;
    private isActionVisible;
    private isActionDisabled;
    onShowContextMenu(e?: Event): void;
    navigateTo(node: Node | string): boolean;
    private getNodeFolderDestinationId;
    private isLinkFolder;
    private updateCustomSourceData;
    /**
     * Invoked when executing content action for a document or folder.
     *
     * @param node Node to be the context of the execution.
     * @param action Action to be executed against the context.
     */
    executeContentAction(node: NodeEntry, action: ContentActionModel): void;
    private setLoadingState;
    loadFolder(hideLoadingSpinner?: boolean): void;
    resetSelection(): void;
    onPageLoaded(nodePaging: NodePaging): void;
    onSortingChanged(event: CustomEvent): void;
    private buildOrderByArray;
    onPreviewFile(node: NodeEntry): void;
    onColumnsVisibilityChange(columns: DataColumn[]): void;
    onColumnOrderChange(columnsWithNewOrder: DataColumn[]): void;
    onColumnsWidthChange(columns: DataColumn[]): void;
    onSelectedItemsCountChanged(count: number): void;
    onNodeClick(nodeEntry: NodeEntry): void;
    onNodeDblClick(nodeEntry: NodeEntry): void;
    executeActionClick(nodeEntry: NodeEntry): void;
    onNodeSelect(event: {
        row: ShareDataRow;
        selection: Array<ShareDataRow>;
    }): void;
    onNodeUnselect(event: {
        row: ShareDataRow;
        selection: Array<ShareDataRow>;
    }): void;
    onShowRowContextMenu(event: DataCellEvent): void;
    onShowRowActionsMenu(event: DataCellEvent): void;
    onExecuteRowAction(event: DataRowActionEvent): void;
    private enforceSingleClickNavigationForMobile;
    canNavigateFolder(node: Node): boolean;
    private onDataReady;
    updatePagination(requestPaginationModel: RequestPaginationModel): void;
    private syncPagination;
    onFilterSelectionChange(activeFilters: FilterSearch[]): void;
    onFilterSearchResultsReady(nodePaging: NodePaging): void;
    onFiltersCleared(): void;
    resetNewFolderPagination(): void;
    private handleError;
    getPreselectedNodesBasedOnSelectionMode(): NodeEntry[];
    getPreselectedRowsBasedOnSelectionMode(): DataRow[];
    getSelectionBasedOnSelectionMode(): DataRow[];
    onPreselectNodes(): void;
    private preserveExistingSelection;
    preselectRowsOfPreselectedNodes(): void;
    unselectRowFromNodeId(nodeId: string): void;
    private isSingleSelectionMode;
    private isMultipleSelectionMode;
    private hasPreselectedNodes;
    private hasPreselectedRows;
    static ɵfac: i0.ɵɵFactoryDeclaration<DocumentListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DocumentListComponent, "adf-document-list", never, { "includeFields": { "alias": "includeFields"; "required": false; }; "where": { "alias": "where"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; "permissionsStyle": { "alias": "permissionsStyle"; "required": false; }; "locationFormat": { "alias": "locationFormat"; "required": false; }; "navigate": { "alias": "navigate"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "navigationMode": { "alias": "navigationMode"; "required": false; }; "thumbnails": { "alias": "thumbnails"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "multiselect": { "alias": "multiselect"; "required": false; }; "contentActions": { "alias": "contentActions"; "required": false; }; "contentActionsPosition": { "alias": "contentActionsPosition"; "required": false; }; "contextMenuActions": { "alias": "contextMenuActions"; "required": false; }; "emptyFolderImageUrl": { "alias": "emptyFolderImageUrl"; "required": false; }; "allowDropFiles": { "alias": "allowDropFiles"; "required": false; }; "sorting": { "alias": "sorting"; "required": false; }; "additionalSorting": { "alias": "additionalSorting"; "required": false; }; "sortingMode": { "alias": "sortingMode"; "required": false; }; "rowStyle": { "alias": "rowStyle"; "required": false; }; "rowStyleClass": { "alias": "rowStyleClass"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "_rowFilter": { "alias": "_rowFilter"; "required": false; }; "rowFilter": { "alias": "rowFilter"; "required": false; }; "imageResolver": { "alias": "imageResolver"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "headerFilters": { "alias": "headerFilters"; "required": false; }; "filterValue": { "alias": "filterValue"; "required": false; }; "currentFolderId": { "alias": "currentFolderId"; "required": false; }; "preselectNodes": { "alias": "preselectNodes"; "required": false; }; "node": { "alias": "node"; "required": false; }; "maxItems": { "alias": "maxItems"; "required": false; }; "columnsPresetKey": { "alias": "columnsPresetKey"; "required": false; }; "setColumnsVisibility": { "alias": "setColumnsVisibility"; "required": false; }; "setColumnsWidths": { "alias": "setColumnsWidths"; "required": false; }; "setColumnsOrder": { "alias": "setColumnsOrder"; "required": false; }; "maxColumnsVisible": { "alias": "maxColumnsVisible"; "required": false; }; "isResizingEnabled": { "alias": "isResizingEnabled"; "required": false; }; "blurOnResize": { "alias": "blurOnResize"; "required": false; }; "displayCheckboxesOnHover": { "alias": "displayCheckboxesOnHover"; "required": false; }; "displayDragAndDropHint": { "alias": "displayDragAndDropHint"; "required": false; }; "isDataProvidedExternally": { "alias": "isDataProvidedExternally"; "required": false; }; }, { "nodeClick": "nodeClick"; "nodeDblClick": "nodeDblClick"; "folderChange": "folderChange"; "preview": "preview"; "ready": "ready"; "error": "error"; "nodeSelected": "nodeSelected"; "filterSelection": "filterSelection"; "columnsWidthChanged": "columnsWidthChanged"; "columnsVisibilityChanged": "columnsVisibilityChanged"; "columnsOrderChanged": "columnsOrderChanged"; "selectedItemsCountChanged": "selectedItemsCountChanged"; }, ["columnList", "customLoadingContent", "customNoPermissionsTemplate", "customNoContentTemplate"], ["adf-custom-empty-content-template, empty-folder-content", "adf-custom-no-permission-template, no-permission-content", "adf-custom-loading-content-template"], true, never>;
}

/*!
 * @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.
 */

declare class ContentActionComponent implements OnInit, OnChanges, OnDestroy {
    private readonly list;
    private readonly documentActions;
    private readonly folderActions;
    /** The title of the action as shown in the menu. */
    title: string;
    /** The name of the icon to display next to the menu command (can be left blank). */
    icon: string;
    /** Visibility state (see examples). */
    visible: boolean | ((...args: any[]) => boolean);
    /** System actions. Can be "delete", "download", "copy" or "move". */
    handler: string;
    /** Type of item that the action applies to. Can be "document" or "folder" */
    target: string;
    /** The permission type. */
    permission: string;
    /** Should this action be disabled in the menu if the user doesn't have permission for it? */
    disableWithNoPermission: boolean;
    /** Is the menu item disabled? */
    disabled: boolean | ((...args: any[]) => boolean);
    /** Emitted when the user selects the action from the menu. */
    execute: EventEmitter<any>;
    /** Emitted when a permission error occurs */
    permissionEvent: EventEmitter<any>;
    /**
     * Emitted when an error occurs during the action.
     * Applies to copy and move actions.
     */
    error: EventEmitter<any>;
    /**
     * Emitted when the action succeeds with the success string message.
     * Applies to copy, move and delete actions.
     */
    success: EventEmitter<any>;
    documentActionModel: ContentActionModel;
    folderActionModel: ContentActionModel;
    private subscriptions;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    ngOnDestroy(): void;
    register(model: ContentActionModel): boolean;
    unregister(model: ContentActionModel): boolean;
    private generateAction;
    getSystemHandler(target: string, name: string): ContentActionHandler;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentActionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentActionComponent, "content-action", never, { "title": { "alias": "title"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "visible": { "alias": "visible"; "required": false; }; "handler": { "alias": "handler"; "required": false; }; "target": { "alias": "target"; "required": false; }; "permission": { "alias": "permission"; "required": false; }; "disableWithNoPermission": { "alias": "disableWithNoPermission"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, { "execute": "execute"; "permissionEvent": "permissionEvent"; "error": "error"; "success": "success"; }, never, never, true, never>;
}

declare class ContentActionListComponent {
    private readonly documentList;
    /**
     * Registers action handler within the parent document list component.
     *
     * @param action Action model to register.
     * @returns `true` if actions was registered, otherwise `false`
     */
    registerAction(action: ContentActionModel): boolean;
    unregisterAction(action: ContentActionModel): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentActionListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentActionListComponent, "content-actions", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class LibraryNameColumnComponent implements OnInit {
    private readonly element;
    private readonly nodesApiService;
    context: any;
    displayTooltip$: BehaviorSubject<string>;
    displayText$: BehaviorSubject<string>;
    node: NodeEntry;
    private readonly destroyRef;
    ngOnInit(): void;
    protected updateValue(): void;
    onClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibraryNameColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibraryNameColumnComponent, "adf-library-name-column", never, { "context": { "alias": "context"; "required": true; }; }, {}, never, never, true, never>;
}

declare class LibraryRoleColumnComponent implements OnInit {
    private readonly nodesApiService;
    context: any;
    private readonly role;
    readonly displayText: i0.Signal<"LIBRARY.ROLE.MANAGER" | "LIBRARY.ROLE.COLLABORATOR" | "LIBRARY.ROLE.CONTRIBUTOR" | "LIBRARY.ROLE.CONSUMER" | "LIBRARY.ROLE.NONE">;
    private readonly destroyRef;
    ngOnInit(): void;
    protected updateValue(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibraryRoleColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibraryRoleColumnComponent, "adf-library-role-column", never, { "context": { "alias": "context"; "required": true; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class LibraryStatusColumnComponent implements OnInit {
    private readonly nodesApiService;
    context: any;
    displayText$: BehaviorSubject<string>;
    private readonly destroyRef;
    ngOnInit(): void;
    protected updateValue(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibraryStatusColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibraryStatusColumnComponent, "adf-library-status-column", never, { "context": { "alias": "context"; "required": true; }; }, {}, never, never, true, never>;
}

declare class NameColumnComponent implements OnInit {
    private readonly element;
    private readonly nodesApiService;
    context: any;
    key: string;
    displayText$: BehaviorSubject<string>;
    node: NodeEntry;
    readonly tooltip: i0.Signal<string>;
    private readonly destroyRef;
    ngOnInit(): void;
    protected updateValue(): void;
    onClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NameColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NameColumnComponent, "adf-name-column", never, { "context": { "alias": "context"; "required": true; }; "key": { "alias": "key"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class FilterHeaderComponent implements OnInit, OnChanges {
    /** (optional) Initial filter value to sort . */
    value: any;
    /** The id of the current folder of the document list. */
    currentFolderId: string;
    /** Pagination model from the document list */
    pagination: PaginationModel;
    /** Sorting configuration from the document list */
    sorting: DataSorting[];
    /** Emitted when a filter value is selected */
    filterSelection: EventEmitter<FilterSearch[]>;
    /** Emitted when search results are ready */
    searchResultsReady: EventEmitter<NodePaging>;
    /** Emitted when filters are cleared and document list should reload */
    filtersCleared: EventEmitter<void>;
    private readonly searchFilterQueryBuilder;
    private readonly destroyRef;
    readonly isFilterServiceActive: boolean;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    onFilterSelectionChange(): void;
    resetFilterHeader(): void;
    private configureSearchParent;
    private initSearchHeader;
    static ɵfac: i0.ɵɵFactoryDeclaration<FilterHeaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FilterHeaderComponent, "adf-filter-header", never, { "value": { "alias": "value"; "required": false; }; "currentFolderId": { "alias": "currentFolderId"; "required": true; }; "pagination": { "alias": "pagination"; "required": false; }; "sorting": { "alias": "sorting"; "required": false; }; }, { "filterSelection": "filterSelection"; "searchResultsReady": "searchResultsReady"; "filtersCleared": "filtersCleared"; }, never, never, true, never>;
}

declare class TrashcanNameColumnComponent implements OnInit {
    context: any;
    isLibrary: boolean;
    displayText: string;
    node: NodeEntry;
    readonly tooltip: i0.Signal<string>;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TrashcanNameColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TrashcanNameColumnComponent, "adf-trashcan-name-column", never, { "context": { "alias": "context"; "required": true; }; }, {}, never, never, true, never>;
}

declare class FileAutoDownloadComponent {
    node: NodeEntry;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileAutoDownloadComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FileAutoDownloadComponent, "adf-file-auto-download", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

type ImageResolver = (row: DataRow, column: DataColumn) => string;

/*!
 * @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.
 */
declare class PermissionModel {
    type: string;
    action: string;
    permission: string;
    constructor(obj?: any);
}

declare class FolderActionsService {
    private readonly nodeActionsService;
    private readonly documentListService;
    private readonly contentService;
    private readonly translation;
    permissionEvent: Subject<PermissionModel>;
    error: Subject<Error>;
    success: Subject<string>;
    private handlers;
    constructor();
    /**
     * Gets the handler function for an action.
     *
     * @param key Identifier for the action
     * @returns The handler function
     */
    getHandler(key: string): ContentActionHandler;
    /**
     * Sets a new handler function for an action.
     *
     * @param key Identifier for the action
     * @param handler The new handler function
     * @returns True if the key was a valid action identifier, false otherwise
     */
    setHandler(key: string, handler: ContentActionHandler): boolean;
    /**
     * Checks if an action is available for a particular item.
     *
     * @param nodeEntry Item to check
     * @returns True if the action is available, false otherwise
     */
    canExecuteAction(nodeEntry: NodeEntry): boolean;
    private setupActionHandlers;
    private downloadNode;
    private copyNode;
    private moveNode;
    private prepareHandlers;
    private deleteNode;
    static ɵfac: i0.ɵɵFactoryDeclaration<FolderActionsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FolderActionsService>;
}

declare class DocumentActionsService {
    private readonly nodeActionsService;
    private readonly contentNodeDialogService;
    private readonly translation;
    private readonly documentListService;
    private readonly contentService;
    permissionEvent: Subject<PermissionModel>;
    error: Subject<Error>;
    success: Subject<string>;
    private handlers;
    constructor();
    /**
     * Gets the handler for an action.
     *
     * @param key Identifier of the action
     * @returns The handler for the action
     */
    getHandler(key: string): ContentActionHandler;
    /**
     * Sets a new handler for an action.
     *
     * @param key Identifier of the action
     * @param handler Handler for the action
     * @returns False if the key was an empty/null string, true otherwise
     */
    setHandler(key: string, handler: ContentActionHandler): boolean;
    /**
     * Checks if actions can be executed for an item.
     *
     * @param nodeEntry Item to receive an action
     * @returns True if the action can be executed on this item, false otherwise
     */
    canExecuteAction(nodeEntry: NodeEntry): boolean;
    private setupActionHandlers;
    private lockNode;
    private downloadNode;
    private copyNode;
    private moveNode;
    private prepareHandlers;
    private deleteNode;
    static ɵfac: i0.ɵɵFactoryDeclaration<DocumentActionsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DocumentActionsService>;
}

/*!
 * @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.
 */

declare class DocumentLoaderNode {
    currentNode: NodeEntry;
    children: NodePaging;
    constructor(currentNode: NodeEntry, children: NodePaging);
}

/*!
 * @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.
 */

interface DocumentListLoader {
    loadFolderByNodeId(nodeId: string, pagination: PaginationModel, includeFields: string[], where?: string, filters?: string[]): Observable<DocumentLoaderNode>;
}

/*!
 * @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.
 */

declare class DocumentListService implements DocumentListLoader {
    private readonly nodesApiService;
    private readonly apiService;
    private readonly customResourcesService;
    readonly nodes: NodesApi;
    private readonly _reload;
    private readonly _resetSelection;
    private readonly _reloadSilently;
    /** Gets an observable that emits when the document list should be reloaded. */
    reload$: Observable<void>;
    /** Gets an observable that emits when the document list should be reloaded without resetting the current selection. */
    reloadSilently$: Observable<void>;
    /** Gets an observable that emits when the selection should be reset. */
    resetSelection$: Observable<void>;
    /** Reloads the document list. */
    reload(): void;
    /** Reloads the document list without resetting the current selection. */
    reloadSilently(): void;
    /** Resets the selection. */
    resetSelection(): void;
    /**
     * Deletes a node.
     *
     * @param nodeId ID of the node to delete
     * @returns Empty response when the operation is complete
     */
    deleteNode(nodeId: string): Observable<any>;
    /**
     * Copy a node to destination node
     *
     * @param nodeId The id of the node to be copied
     * @param targetParentId The id of the folder where the node will be copied
     * @returns NodeEntry for the copied node
     */
    copyNode(nodeId: string, targetParentId: string): Observable<NodeEntry>;
    /**
     * Moves a node to destination node.
     *
     * @param nodeId The id of the node to be moved
     * @param targetParentId The id of the folder where the node will be moved
     * @returns NodeEntry for the moved node
     */
    moveNode(nodeId: string, targetParentId: string): Observable<NodeEntry>;
    /**
     * Gets the folder node with the specified relative name path below the root node.
     *
     * @param folder Path to folder.
     * @param opts Options.
     * @param includeFields Extra information to include (available options are "aspectNames", "isLink" and "association")
     * @returns Details of the folder
     */
    getFolder(folder: string, opts?: any, includeFields?: string[]): Observable<NodePaging>;
    /**
     * Gets a node via its node ID.
     *
     * @param nodeId ID of the target node
     * @param includeFields Extra information to include (available options are "aspectNames", "isLink" and "association")
     * @returns Details of the folder
     */
    getNode(nodeId: string, includeFields?: string[]): Observable<Node>;
    /**
     * Gets a folder node via its node ID.
     *
     * @param nodeId ID of the folder node
     * @param includeFields Extra information to include (available options are "aspectNames", "isLink" and "association")
     * @returns Details of the folder
     */
    getFolderNode(nodeId: string, includeFields?: string[]): Observable<NodeEntry>;
    isCustomSourceService(nodeId: string): boolean;
    /**
     * Load a folder by Node Id.
     *
     * @param nodeId ID of the folder node
     * @param pagination pagination model
     * @param includeFields List of data field names to include in the results
     * @param where  Optionally filter the list
     * @param orderBy order by node property
     * @param filters Specifies additional filters to apply (joined with **AND**). Applied for recent files only.
     * @returns Details of the folder
     */
    loadFolderByNodeId(nodeId: string, pagination: PaginationModel, includeFields: string[], where?: string, orderBy?: string[], filters?: string[]): Observable<DocumentLoaderNode>;
    private retrieveDocumentNode;
    static ɵfac: i0.ɵɵFactoryDeclaration<DocumentListService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DocumentListService>;
}

/*!
 * @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.
 */

declare class NodeActionsService {
    private readonly contentDialogService;
    dialogRef: MatDialog;
    content: ContentService;
    private readonly documentListService;
    private readonly injector;
    error: EventEmitter<any>;
    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): Observable<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): Observable<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): Observable<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): Observable<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>;
}

/*!
 * @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.
 */

declare class CustomResourcesService {
    private readonly apiService;
    readonly peopleApi: PeopleApi;
    readonly sitesApi: SitesApi;
    readonly trashcanApi: TrashcanApi;
    readonly searchApi: SearchApi;
    readonly sharedLinksApi: SharedlinksApi;
    readonly favoritesApi: FavoritesApi;
    readonly nodesApi: NodesApi;
    /**
     * 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**)
     * @param includeFields List of data field names to include in the results
     * @returns List of nodes for the recently used files
     */
    getRecentFiles(personId: string, pagination: PaginationModel, filters?: string[], includeFields?: 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.
     * @param filters Specifies additional filters to apply (joined with **AND**). Applied for '-recent-' only.
     * @returns List of items contained in the folder
     */
    loadFolderByNodeId(nodeId: string, pagination: PaginationModel, includeFields?: string[], where?: string, filters?: 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>;
}

declare class LockService {
    private readonly authService;
    isLocked(node: Node): boolean;
    private hasLockConfigured;
    private isReadOnlyLock;
    private isLockOwnerAllowed;
    private getLockExpiryTime;
    private isLockExpired;
    static ɵfac: i0.ɵɵFactoryDeclaration<LockService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LockService>;
}

/*!
 * @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.
 */
declare const NodeAction: {
    readonly ATTACH: "ATTACH";
    readonly CHOOSE: "CHOOSE";
    readonly COPY: "COPY";
    readonly MOVE: "MOVE";
    readonly NEXT: "NEXT";
    readonly LINK: "LINK";
};
type NodeAction = (typeof NodeAction)[keyof typeof NodeAction];

/*!
 * @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.
 */

/**
 * Utility class for generating node and library tooltips based on node properties
 */
declare class NodeTooltipUtils {
    /**
     * Generates a tooltip string for a node based on its name, title, and description properties.
     * The tooltip logic follows these rules:
     * - If both title and description exist: shows "title\ndescription"
     * - If only title exists: shows "name\ntitle"
     * - If only description exists: shows "name\ndescription"
     * - If neither exists: shows "name"
     * - Removes case-insensitive duplicates while preserving order
     *
     * @param node - The node entry to generate tooltip for
     * @returns The tooltip string with newline-separated lines, or null if node is invalid
     */
    static getNodeTooltip(node: NodeEntry): string | null;
    /**
     * Generates a tooltip string for a library (site) node.
     * Returns description if available, otherwise title, otherwise empty string.
     *
     * @param node - The node entry to generate tooltip for
     * @returns The tooltip string, or empty string if no description or title is available
     */
    static getLibraryTooltip(node: NodeEntry): string;
    /**
     * Generates a display title for a library (site) node.
     * If there are duplicate titles in the list, appends the library ID/name in parentheses.
     *
     * @param library - The library entry object
     * @param allEntries - Array of all entries to check for duplicates
     * @returns The display title, with ID/name appended if duplicate exists
     */
    static getLibraryTitle(library: any, allEntries: any[]): string;
    /**
     * Removes case-insensitive duplicate strings from an array while preserving order
     *
     * @param lines - Array of strings to deduplicate
     * @returns Array with duplicates removed
     */
    private static removeDuplicates;
}

declare const DOCUMENT_LIST_DIRECTIVES: readonly [typeof ContentActionComponent, typeof FileAutoDownloadComponent, typeof FilterHeaderComponent, typeof LibraryNameColumnComponent, typeof LibraryRoleColumnComponent, typeof LibraryStatusColumnComponent, typeof NameColumnComponent, typeof TrashcanNameColumnComponent, typeof ContentActionListComponent, typeof DocumentListComponent];
/** @deprecated use `...DOCUMENT_LIST_DIRECTIVES` or import standalone components */
declare class DocumentListModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DocumentListModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DocumentListModule, never, [typeof ContentActionComponent, typeof FileAutoDownloadComponent, typeof FilterHeaderComponent, typeof LibraryNameColumnComponent, typeof LibraryRoleColumnComponent, typeof LibraryStatusColumnComponent, typeof NameColumnComponent, typeof TrashcanNameColumnComponent, typeof ContentActionListComponent, typeof DocumentListComponent], [typeof ContentActionComponent, typeof FileAutoDownloadComponent, typeof FilterHeaderComponent, typeof LibraryNameColumnComponent, typeof LibraryRoleColumnComponent, typeof LibraryStatusColumnComponent, typeof NameColumnComponent, typeof TrashcanNameColumnComponent, typeof ContentActionListComponent, typeof DocumentListComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DocumentListModule>;
}

/*!
 * @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.
 */

interface FileUploadProgress {
    loaded: number;
    total: number;
    percent: number;
}
declare class FileUploadOptions {
    /**
     * Add a version comment which will appear in version history.
     * Setting this parameter also enables versioning of this node, if it is not already versioned.
     */
    comment?: string;
    /**
     * Overwrite the content of the node with a new version.
     */
    newVersion?: boolean;
    /**
     * If true, then created node will be version 1.0 MAJOR. If false, then created node will be version 0.1 MINOR.
     */
    majorVersion?: boolean;
    /**
     * Root folder id.
     */
    parentId?: string;
    /**
     * Defines the **relativePath** value.
     * The relativePath specifies the folder structure to create relative to the node nodeId.
     * Folders in the relativePath that do not exist are created before the node is created.
     */
    path?: string;
    /**
     * You can use the nodeType field to create a specific type. The default is **cm:content**.
     */
    nodeType?: string;
    /**
     * You can set multi-value properties when you create a new node which supports properties of type multiple.
     */
    properties?: any;
    /**
     * If the content model allows then it is also possible to create primary children with a different assoc type.
     */
    association?: any;
    /**
     * You can optionally specify an array of **secondaryChildren** to create one or more secondary child associations,
     * such that the newly created node acts as a parent node.
     */
    secondaryChildren?: ChildAssociationBody[];
    /**
     * You can optionally specify an array of **targets** to create one or more peer associations such that the newly created node acts as a source node.
     */
    targets?: AssociationBody[];
    /**
     * If true, then created node will be versioned. If false, then created node will be unversioned and auto-versioning disabled.
     */
    versioningEnabled?: boolean;
}
declare const FileUploadStatus: {
    readonly Pending: 0;
    readonly Complete: 1;
    readonly Starting: 2;
    readonly Progress: 3;
    readonly Cancelled: 4;
    readonly Aborted: 5;
    readonly Error: 6;
    readonly Deleted: 7;
};
type FileUploadStatus = (typeof FileUploadStatus)[keyof typeof FileUploadStatus];
declare class FileModel {
    readonly name: string;
    readonly size: number;
    readonly file: File;
    id: string;
    status: FileUploadStatus;
    errorCode: number;
    progress: FileUploadProgress;
    options: FileUploadOptions;
    data: any;
    constructor(file: File, options?: FileUploadOptions, id?: string);
    get extension(): string;
}

/*!
 * @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.
 */

declare class FileUploadEvent {
    readonly file: FileModel;
    readonly status: FileUploadStatus;
    readonly error: any;
    constructor(file: FileModel, status?: FileUploadStatus, error?: any);
}
declare class FileUploadCompleteEvent extends FileUploadEvent {
    totalComplete: number;
    data?: any;
    totalAborted: number;
    constructor(file: FileModel, totalComplete?: number, data?: any, totalAborted?: number);
}
declare class FileUploadDeleteEvent extends FileUploadEvent {
    totalComplete: number;
    constructor(file: FileModel, totalComplete?: number);
}
declare class FileUploadErrorEvent extends FileUploadEvent {
    error: any;
    totalError: number;
    constructor(file: FileModel, error: any, totalError?: number);
}

declare class DiscoveryApiService {
    private readonly authenticationService;
    private readonly alfrescoApiService;
    readonly discoveryApi: DiscoveryApi;
    readonly aboutApi: AboutApi;
    readonly systemPropertiesApi: SystemPropertiesApi;
    /**
     * Gets product information for Content Services.
     */
    ecmProductInfo$: Subject<RepositoryInfo>;
    constructor();
    /**
     * Gets product information for Content Services.
     *
     * @returns ProductVersionModel containing product details
     */
    getEcmProductInfo(): Observable<RepositoryInfo>;
    /**
     * @deprecated since 8.3.0 this method is no longer used, and will be removed in the next major release.
     * Gets product information for Process Services.
     *
     * @returns ProductVersionModel containing product details
     */
    getBpmProductInfo(): Observable<BpmProductVersionModel>;
    getBPMSystemProperties(): Observable<SystemPropertiesRepresentation>;
    static ɵfac: i0.ɵɵFactoryDeclaration<DiscoveryApiService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DiscoveryApiService>;
}

/*!
 * @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.
 */

declare class UploadService {
    queue: FileModel[];
    queueChanged: Subject<FileModel[]>;
    fileUpload: Subject<FileUploadEvent>;
    fileUploadStarting: Subject<FileUploadEvent>;
    fileUploadCancelled: Subject<FileUploadEvent>;
    fileUploadProgress: Subject<FileUploadEvent>;
    fileUploadAborted: Subject<FileUploadEvent>;
    fileUploadError: Subject<FileUploadErrorEvent>;
    fileUploadComplete: Subject<FileUploadCompleteEvent>;
    fileUploadDeleted: Subject<FileUploadDeleteEvent>;
    fileDeleted: Subject<string>;
    private cache;
    private totalComplete;
    private totalAborted;
    private totalError;
    private excludedFileList;
    private excludedFoldersList;
    private matchingOptions;
    private folderMatchingOptions;
    private abortedFile;
    private isThumbnailGenerationEnabled;
    readonly uploadApi: UploadApi;
    readonly nodesApi: NodesApi;
    readonly versionsApi: VersionsApi;
    protected apiService: AlfrescoApiService;
    protected appConfigService: AppConfigService;
    protected discoveryApiService: DiscoveryApiService;
    constructor();
    clearCache(): void;
    /**
     * Returns the number of concurrent threads for uploading.
     *
     * @returns Number of concurrent threads (default 1)
     */
    getThreadsCount(): number;
    /**
     * Checks whether the service still has files uploading or awaiting upload.
     *
     * @returns True if files in the queue are still uploading, false otherwise
     */
    isUploading(): boolean;
    /**
     * Gets the file Queue
     *
     * @returns Array of files that form the queue
     */
    getQueue(): FileModel[];
    /**
     * Adds files to the uploading queue to be uploaded
     *
     * @param files One or more separate parameters or an array of files to queue
     * @returns Array of files that were not blocked from upload by the ignore list
     */
    addToQueue(...files: FileModel[]): FileModel[];
    /**
     * Finds all the files in the queue that are not yet uploaded and uploads them into the directory folder.
     *
     * @param successEmitter Emitter to invoke on file success status change
     * @param errorEmitter Emitter to invoke on file error status change
     */
    uploadFilesInTheQueue(successEmitter?: EventEmitter<any>, errorEmitter?: EventEmitter<any>): void;
    /**
     * Cancels uploading of files.
     * If the file is smaller than 1 MB the file will be uploaded and then the node deleted
     * to prevent having files that were aborted but still uploaded.
     *
     * @param files One or more separate parameters or an array of files specifying uploads to cancel
     */
    cancelUpload(...files: FileModel[]): void;
    /** Clears the upload queue */
    clearQueue(): void;
    /**
     * Gets an upload promise for a file.
     *
     * @param file The target file
     * @returns Promise that is resolved if the upload is successful or error otherwise
     */
    getUploadPromise(file: FileModel): any;
    private getFilesToUpload;
    private beginUpload;
    private onUploadStarting;
    private onUploadProgress;
    private onUploadError;
    private onUploadComplete;
    private onUploadAborted;
    private onUploadCancelled;
    private onUploadDeleted;
    private getAction;
    private deleteAbortedNode;
    private deleteAbortedNodeVersion;
    private isSaveToAbortFile;
    private filterElement;
    private isParentFolderAllowed;
    private isFileNameAllowed;
    static ɵfac: i0.ɵɵFactoryDeclaration<UploadService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<UploadService>;
}

/*!
 * @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.
 */

declare class UploadFilesEvent {
    files: Array<FileModel>;
    private readonly uploadService;
    private readonly successEmitter;
    private readonly errorEmitter;
    private isDefaultPrevented;
    get defaultPrevented(): boolean;
    preventDefault(): void;
    constructor(files: Array<FileModel>, uploadService: UploadService, successEmitter: EventEmitter<any>, errorEmitter: EventEmitter<any>);
    pauseUpload(): void;
    resumeUpload(): void;
}

/*!
 * @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.
 */

declare abstract class UploadBase implements OnInit {
    protected uploadService: UploadService;
    protected translationService: TranslationService;
    protected ngZone: NgZone;
    /**
     * Sets a limit on the maximum size (in bytes) of a file to be uploaded.
     * Has no effect if undefined.
     */
    maxFilesSize: number;
    /**
     * The ID of the root. Use the nodeId for
     * Content Services or the taskId/processId for Process Services.
     */
    rootFolderId: string;
    /** Toggles component disabled state (if there is no node permission checking). */
    disabled: boolean;
    /** Filter for accepted file types. */
    acceptedFilesType: string;
    /** Toggles versioning. */
    versioning: boolean;
    /** majorVersion boolean field to true to indicate a major version should be created. */
    majorVersion: boolean;
    /** When you overwrite existing content, you can use the comment field to add a version comment that appears in the version history */
    comment: string;
    /** Custom node type for uploaded file */
    nodeType: string;
    /** Emitted when the file is uploaded successfully. */
    success: EventEmitter<any>;
    /** Emitted when an error occurs. */
    error: EventEmitter<FileUploadErrorEvent>;
    /** Emitted when the upload begins. */
    beginUpload: EventEmitter<UploadFilesEvent>;
    /** Emitted when dropping a file over another file to update the version. */
    updateFileVersion: EventEmitter<CustomEvent<any>>;
    private readonly destroyRef;
    ngOnInit(): void;
    /**
     * Upload a list of file in the specified path
     *
     * @param files files to upload
     */
    uploadFiles(files: File[]): void;
    uploadFilesInfo(files: FileInfo[]): void;
    private uploadQueue;
    /**
     * Checks if the given file is allowed by the extension filters
     *
     * @param file FileModel
     * @returns `true` if file is acceptable, otherwise `false`
     */
    protected isFileAcceptable(file: FileModel): boolean;
    /**
     * Creates FileModel from File
     *
     * @param file file instance
     * @param parentId parent id
     * @param path upload path
     * @param id model id
     * @returns file model
     */
    protected createFileModel(file: File, parentId: string, path: string, id?: string): FileModel;
    protected isFileSizeAllowed(file: FileModel): boolean;
    protected isMaxFileSizeDefined(): boolean;
    protected isFileSizeCorrect(file: FileModel): boolean;
    /**
     * Checks if the given file is an acceptable size
     *
     * @param file FileModel
     * @returns `true` if file size is acceptable, otherwise `false`
     */
    private isFileSizeAcceptable;
    static ɵfac: i0.ɵɵFactoryDeclaration<UploadBase, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<UploadBase, never, never, { "maxFilesSize": { "alias": "maxFilesSize"; "required": false; }; "rootFolderId": { "alias": "rootFolderId"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "acceptedFilesType": { "alias": "acceptedFilesType"; "required": false; }; "versioning": { "alias": "versioning"; "required": false; }; "majorVersion": { "alias": "majorVersion"; "required": false; }; "comment": { "alias": "comment"; "required": false; }; "nodeType": { "alias": "nodeType"; "required": false; }; }, { "success": "success"; "error": "error"; "beginUpload": "beginUpload"; "updateFileVersion": "updateFileVersion"; }, never, never, true, never>;
}

declare class UploadButtonComponent extends UploadBase implements OnInit, OnChanges {
    private readonly contentService;
    private readonly nodesApiService;
    /** Allows/disallows upload folders (only for Chrome). */
    uploadFolders: boolean;
    /** Allows/disallows multiple files */
    multipleFiles: boolean;
    /** Defines the text of the upload button. */
    staticTitle: string;
    /** Custom tooltip text. */
    tooltip: string;
    /** Custom added file. The upload button type will be 'button' instead of 'file' */
    file: File;
    /** Emitted when create permission is missing. */
    permissionEvent: EventEmitter<PermissionModel>;
    private hasAllowableOperations;
    protected permissionValue: Subject<boolean>;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    isButtonDisabled(): boolean;
    onFilesAdded($event: any): void;
    onClickUploadButton(): void;
    onDirectoryAdded($event: any): void;
    checkPermission(): void;
    nodeHasPermission(node: Node, permission: AllowableOperationsEnum | string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<UploadButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UploadButtonComponent, "adf-upload-button", never, { "uploadFolders": { "alias": "uploadFolders"; "required": false; }; "multipleFiles": { "alias": "multipleFiles"; "required": false; }; "staticTitle": { "alias": "staticTitle"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "file": { "alias": "file"; "required": false; }; }, { "permissionEvent": "permissionEvent"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class UploadVersionButtonComponent extends UploadButtonComponent implements OnChanges, OnInit {
    /** (**Required**) The node to be versioned. */
    node: Node;
    protected createFileModel(file: File): FileModel;
    ngOnInit(): void;
    checkPermission(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<UploadVersionButtonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UploadVersionButtonComponent, "adf-upload-version-button", never, { "node": { "alias": "node"; "required": false; }; }, {}, never, never, true, never>;
}

declare class FileUploadingListComponent {
    private readonly uploadService;
    private readonly translateService;
    template: any;
    files: FileModel[];
    /** Emitted when a file in the list has an error. */
    error: EventEmitter<any>;
    /**
     * Cancel file upload
     *
     * @param file File model to cancel upload for.
     */
    cancelFile(file: FileModel): void;
    /**
     * Remove uploaded file
     *
     * @param file File model to remove upload for.
     */
    removeFile(file: FileModel): void;
    /**
     * Calls the appropriate methods for each file, depending on state
     */
    cancelAllFiles(): void;
    /**
     * Checks if all the files are uploaded false if there is at least one file in Progress | Starting | Pending
     *
     * @returns `true` if upload is complete, otherwise `false`
     */
    isUploadCompleted(): boolean;
    /**
     * Check if all the files are Cancelled | Aborted | Error. false if there is at least one file in uploading states
     *
     * @returns `true` if upload is cancelled, otherwise `false`
     */
    isUploadCancelled(): boolean;
    private cancelNodeVersionInstances;
    private notifyError;
    private isUploadingFile;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadingListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadingListComponent, "adf-file-uploading-list", never, { "files": { "alias": "files"; "required": false; }; }, { "error": "error"; }, ["template"], never, true, never>;
}

declare class FileUploadingDialogComponent implements OnInit, OnDestroy {
    private readonly uploadService;
    private readonly changeDetector;
    private readonly userPreferencesService;
    private readonly uploadDialogRef;
    /** Dialog direction. Can be 'ltr' or 'rtl. */
    private direction;
    uploadList: FileUploadingListComponent;
    /** Dialog position. Can be 'left' or 'right'. */
    position: string;
    /** Makes the dialog always visible even when there are no uploads. */
    alwaysVisible: boolean;
    /** Emitted when a file in the list has an error. */
    error: EventEmitter<any>;
    get isPositionRight(): boolean;
    get isPositionLeft(): boolean;
    filesUploadingList: FileModel[];
    isDialogActive: boolean;
    totalCompleted: number;
    totalErrors: number;
    isDialogMinimized: boolean;
    isConfirmation: boolean;
    private readonly dialogActive;
    private readonly destroyRef;
    ngOnInit(): void;
    /**
     * Toggle confirmation message.
     */
    toggleConfirmation(): void;
    /**
     * Cancel uploads and hide confirmation
     */
    cancelAllUploads(): void;
    /**
     * Toggle dialog minimized state.
     */
    toggleMinimized(): void;
    /**
     * Dismiss dialog
     */
    close(): void;
    ngOnDestroy(): void;
    canShowDialog(): boolean;
    canShowCancelAll(): boolean;
    canCloseDialog(): boolean;
    hasUploadInProgress(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadingDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadingDialogComponent, "adf-file-uploading-dialog", never, { "position": { "alias": "position"; "required": false; }; "alwaysVisible": { "alias": "alwaysVisible"; "required": false; }; }, { "error": "error"; }, never, never, true, never>;
}

declare class UploadDragAreaComponent extends UploadBase {
    private readonly notificationService;
    private readonly contentService;
    /**
     * Method called when files are dropped in the drag area.
     *
     * @param files - files dropped in the drag area.
     */
    onFilesDropped(files: File[]): void;
    /**
     * Called when a folder are dropped in the drag area
     *
     * @param folder - name of the dropped folder
     */
    onFolderEntityDropped(folder: any): void;
    /**
     * Show undo notification bar.
     *
     * @param latestFilesAdded - files in the upload queue enriched with status flag and xhr object.
     */
    showUndoNotificationBar(latestFilesAdded: FileModel[]): void;
    /**
     * Check if content is droppable
     *
     * @returns `true` or `false` considering the component options and node permissions
     */
    isDroppable(): boolean;
    /**
     * Handles 'upload-files' events raised by child components.
     *
     * @param event DOM event
     */
    onUploadFiles(event: CustomEvent): void;
    private isTargetNodeFolder;
    static ɵfac: i0.ɵɵFactoryDeclaration<UploadDragAreaComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UploadDragAreaComponent, "adf-upload-drag-area", never, {}, {}, never, ["*"], true, never>;
}

/*!
 * @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.
 */

interface ToggleIconState {
    isFocused: boolean;
    isToggled: boolean;
}
declare class FileUploadingListRowComponent {
    file: FileModel;
    cancel: EventEmitter<FileModel>;
    toggleIconState: ToggleIconState;
    toggleIconCancelState: ToggleIconState;
    onCancel(file: FileModel): void;
    onToggleMouseEnter(state: ToggleIconState): void;
    onToggleMouseLeave(state: ToggleIconState): void;
    onToggleFocus(state: ToggleIconState): void;
    onToggleBlur(state: ToggleIconState): void;
    showCancelledStatus(): boolean;
    get versionNumber(): string;
    get mimeType(): string;
    isUploadVersion(): boolean;
    canCancelUpload(): boolean;
    isUploadError(): boolean;
    isUploading(): boolean;
    isUploadComplete(): boolean;
    isUploadVersionComplete(): boolean;
    getFileUploadErrorKey(errorCode?: number | null): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileUploadingListRowComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FileUploadingListRowComponent, "adf-file-uploading-list-row", never, { "file": { "alias": "file"; "required": false; }; }, { "cancel": "cancel"; }, never, never, true, never>;
}

declare const INPUT_FOCUS_CSS_CLASS = "adf-file-draggable-input-focus";
declare const DROP_EFFECT = "copy";
declare class FileDraggableDirective implements OnInit, OnDestroy {
    private readonly ngZone;
    files: File[];
    /** Enables/disables drag-and-drop functionality. */
    enabled: boolean;
    /** Emitted when one or more files are dragged and dropped onto the draggable element. */
    filesDropped: EventEmitter<File[]>;
    /** Emitted when a directory is dragged and dropped onto the draggable element. */
    folderEntityDropped: EventEmitter<any>;
    private readonly element;
    constructor();
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Method called when files is dropped in the drag and drop area.
     *
     * @param event DOM event.
     */
    onDropFiles(event: any): void;
    /**
     * Change the style of the drag area when a file drag in.
     *
     * @param event - DOM event.
     */
    onDragEnter(event: DragEvent): void;
    /**
     * Change the style of the drag area when a file drag out.
     *
     * @param event - DOM event.
     */
    onDragLeave(event: Event): void;
    /**
     * Change the style of the drag area when a file is over the drag area.
     *
     * @param event drag event
     */
    onDragOver(event: DragEvent): void;
    /**
     * Prevent default and stop propagation of the DOM event.
     *
     * @param event DOM event
     */
    preventDefault(event: Event): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<FileDraggableDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<FileDraggableDirective, "[adf-file-draggable]", never, { "enabled": { "alias": "adf-file-draggable"; "required": false; }; }, { "filesDropped": "filesDropped"; "folderEntityDropped": "folderEntityDropped"; }, never, never, true, never>;
}

declare const CONTENT_UPLOAD_DIRECTIVES: readonly [typeof FileDraggableDirective, typeof UploadDragAreaComponent, typeof UploadButtonComponent, typeof UploadVersionButtonComponent, typeof FileUploadingListRowComponent, typeof FileUploadingListComponent, typeof FileUploadingDialogComponent];
/** @deprecated use `...CONTENT_UPLOAD_DIRECTIVES` instead or import standalone components directly */
declare class UploadModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<UploadModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<UploadModule, never, [typeof FileDraggableDirective, typeof UploadDragAreaComponent, typeof UploadButtonComponent, typeof UploadVersionButtonComponent, typeof FileUploadingListRowComponent, typeof FileUploadingListComponent, typeof FileUploadingDialogComponent], [typeof FileDraggableDirective, typeof UploadDragAreaComponent, typeof UploadButtonComponent, typeof UploadVersionButtonComponent, typeof FileUploadingListRowComponent, typeof FileUploadingListComponent, typeof FileUploadingDialogComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<UploadModule>;
}

/*!
 * @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.
 */

declare class BreadcrumbComponent implements OnInit, OnChanges {
    /** Active node, builds UI based on folderNode.path.elements collection. */
    folderNode: Node;
    /**
     * Name of the root element of the breadcrumb. You can use
     * this property to rename "Company Home" to "Personal Files" for
     * example. You can use an i18n resource key for the property value.
     */
    root?: string;
    /**
     * The id of the root element. You can use this property
     * to set a custom element the breadcrumb should start with.
     */
    rootId?: string;
    /**
     * Document List component to operate with. The list will
     * update when the breadcrumb is clicked.
     */
    target?: DocumentListComponent;
    /**
     * Transformation to be performed on the chosen/folder node before building
     * the breadcrumb UI. Can be useful when custom formatting is needed for the
     * breadcrumb. You can change the path elements from the node that are used to
     * build the breadcrumb using this function.
     */
    transform: (node: any) => any;
    dropdown: MatSelect;
    /** Maximum number of nodes to display before wrapping them with a dropdown element.  */
    maxItems: number;
    /** Number of table rows that are currently selected.  */
    selectedRowItemsCount: number;
    previousNodes: PathElement[];
    lastNodes: PathElement[];
    route: PathElement[];
    private readonly destroyRef;
    private readonly liveAnnouncer;
    private readonly translationService;
    get hasRoot(): boolean;
    /** If true, prevents the user from navigating away from the active node. */
    readOnly: boolean;
    /** Emitted when the user clicks on a breadcrumb. */
    navigate: EventEmitter<PathElement>;
    ngOnInit(): void;
    ngOnChanges(changes: SimpleChanges): void;
    protected recalculateNodes(): void;
    open(): void;
    hasPreviousNodes(): boolean;
    parseRoute(node: Node): PathElement[];
    private getElementPosition;
    breadcrumbItemIsAnchor(lastItem: any): boolean;
    onRoutePathClick(route: PathElement, event?: Event): void;
    onRouteClick(route: PathElement): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BreadcrumbComponent, "adf-breadcrumb", never, { "folderNode": { "alias": "folderNode"; "required": true; }; "root": { "alias": "root"; "required": false; }; "rootId": { "alias": "rootId"; "required": false; }; "target": { "alias": "target"; "required": false; }; "transform": { "alias": "transform"; "required": false; }; "maxItems": { "alias": "maxItems"; "required": false; }; "selectedRowItemsCount": { "alias": "selectedRowItemsCount"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; }, { "navigate": "navigate"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class DropdownBreadcrumbComponent extends BreadcrumbComponent implements OnChanges {
    dropdown: MatSelect;
    currentNode: PathElement;
    previousNodes: PathElement[];
    /**
     * Calculate the current and previous nodes from the route array
     */
    protected recalculateNodes(): void;
    /**
     * Opens the node picker menu
     */
    open(): void;
    /**
     * Check if route has more than one element (means: we are not in the root directory)
     *
     * @returns `true` if there are previous nodes, otherwise `false`
     */
    hasPreviousNodes(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<DropdownBreadcrumbComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DropdownBreadcrumbComponent, "adf-dropdown-breadcrumb", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare abstract class InfiniteScrollDatasource<T> extends DataSource<T> {
    protected readonly dataStream: BehaviorSubject<T[]>;
    private readonly isLoading$;
    private readonly subscription;
    private batchesFetched;
    private _itemsCount;
    private _firstItem;
    batchSize: number;
    isLoading: Observable<boolean>;
    get itemsCount(): number;
    get firstItem(): T;
    abstract getNextBatch(pagingOptions: ContentPagingQuery): Observable<T[]>;
    connect(collectionViewer: CollectionViewer): Observable<T[]>;
    disconnect(): void;
    reset(): void;
}

declare class VersionListDataSource extends InfiniteScrollDatasource<VersionEntry> {
    private readonly versionsApi;
    private readonly node;
    constructor(versionsApi: VersionsApi, node: Node);
    getNextBatch(pagingOptions: ContentPagingQuery): Observable<VersionEntry[]>;
}
declare class VersionListComponent implements OnChanges, OnInit {
    private readonly alfrescoApi;
    private readonly contentService;
    private readonly contentVersionService;
    private readonly dialog;
    readonly contentApi: ContentApi;
    readonly versionsApi: VersionsApi;
    readonly nodesApi: NodesApi;
    versionsDataSource: VersionListDataSource;
    latestVersion: VersionEntry;
    isLoading: boolean;
    /** The target node. */
    node: Node;
    /** Toggles showing/hiding of comments */
    showComments: boolean;
    /** Enable/disable downloading a version of the current node. */
    allowDownload: boolean;
    /** Enable/disable viewing a version of the current node. */
    allowViewVersions: boolean;
    /** Toggles showing/hiding of version actions */
    showActions: boolean;
    /** Enable/disable deletion of version */
    allowVersionDelete: boolean;
    /** Emitted when a version is restored */
    restored: EventEmitter<Node>;
    /** Emitted when a version is deleted */
    deleted: EventEmitter<Node>;
    /** Emitted when viewing a version */
    viewVersion: EventEmitter<string>;
    viewport: CdkVirtualScrollViewport;
    private readonly destroyRef;
    ngOnInit(): void;
    ngOnChanges(): void;
    canUpdate(): boolean;
    canDelete(): boolean;
    restore(versionId: string): void;
    onViewVersion(versionId: string): void;
    loadVersionHistory(): void;
    downloadVersion(versionId: string): void;
    deleteVersion(versionId: string): void;
    onVersionDeleted(node: any): void;
    onVersionRestored(node: NodeEntry): void;
    downloadContent(url: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<VersionListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<VersionListComponent, "adf-version-list", never, { "node": { "alias": "node"; "required": false; }; "showComments": { "alias": "showComments"; "required": false; }; "allowDownload": { "alias": "allowDownload"; "required": false; }; "allowViewVersions": { "alias": "allowViewVersions"; "required": false; }; "showActions": { "alias": "showActions"; "required": false; }; "allowVersionDelete": { "alias": "allowVersionDelete"; "required": false; }; }, { "restored": "restored"; "deleted": "deleted"; "viewVersion": "viewVersion"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class VersionManagerComponent implements OnInit {
    private readonly contentService;
    private readonly nodesApiService;
    /** Target node to manage version history. */
    node: Node;
    /** New file for updating current version. */
    newFileVersion: File;
    /** Toggles showing/hiding of comments. */
    showComments: boolean;
    /** Toggles showing/hiding the version comparison component. */
    showVersionComparison: boolean;
    /** Enable/disable downloading a version of the current node. */
    allowDownload: boolean;
    /** Toggles showing/hiding of version actions. */
    showActions: boolean;
    /** Enable/disable viewing versions of the current node. */
    allowViewVersions: boolean;
    /** Enable/disable deletion of version */
    allowVersionDelete: boolean;
    /** Emitted when a file is uploaded successfully. */
    uploadSuccess: EventEmitter<Node>;
    /** Emitted when an error occurs during upload. */
    uploadError: EventEmitter<FileUploadErrorEvent>;
    /** Emitted when an cancelling during upload. */
    uploadCancel: EventEmitter<boolean>;
    /** Emitted when viewing a version. */
    viewVersion: EventEmitter<string>;
    versionListComponent: VersionListComponent;
    uploadState: string;
    ngOnInit(): void;
    refresh(node: Node): void;
    onUploadSuccess(event: any): void;
    onUploadError(event: FileUploadErrorEvent): void;
    onUploadCancel(): void;
    onViewVersion(versionId: string): void;
    toggleNewVersion(): void;
    canUpdate(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<VersionManagerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<VersionManagerComponent, "adf-version-manager", never, { "node": { "alias": "node"; "required": true; }; "newFileVersion": { "alias": "newFileVersion"; "required": false; }; "showComments": { "alias": "showComments"; "required": false; }; "showVersionComparison": { "alias": "showVersionComparison"; "required": false; }; "allowDownload": { "alias": "allowDownload"; "required": false; }; "showActions": { "alias": "showActions"; "required": false; }; "allowViewVersions": { "alias": "allowViewVersions"; "required": false; }; "allowVersionDelete": { "alias": "allowVersionDelete"; "required": false; }; }, { "uploadSuccess": "uploadSuccess"; "uploadError": "uploadError"; "uploadCancel": "uploadCancel"; "viewVersion": "viewVersion"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class VersionUploadComponent implements OnInit {
    private readonly contentService;
    private readonly uploadService;
    semanticVersion: string;
    comment: string;
    uploadVersion: boolean;
    disabled: boolean;
    majorVersion: string;
    minorVersion: string;
    /** The target node. */
    node: Node;
    /** New file for updating current version. */
    newFileVersion: File;
    /** Toggles showing/hiding upload button. */
    showUploadButton: boolean;
    /** Toggles showing/hiding of cancel button. */
    showCancelButton: boolean;
    /** Current version for a target node */
    set currentVersion(version: Version);
    /** Emitted when the file is uploaded successfully. */
    success: EventEmitter<any>;
    /** Emitted when an error occurs. */
    error: EventEmitter<FileUploadErrorEvent>;
    /** Emitted when an cancelling during upload. */
    cancel: EventEmitter<any>;
    /** Emitted when the version is changed. */
    versionChanged: EventEmitter<boolean>;
    /** Emitted when the comment is changed. */
    commentChanged: EventEmitter<string>;
    /** Emitted when the upload starts */
    uploadStarted: EventEmitter<FileUploadEvent>;
    private readonly destroyRef;
    ngOnInit(): void;
    canUpload(): boolean;
    isMajorVersion(): boolean;
    cancelUpload(): void;
    onVersionChange(): void;
    onCommentChange(): void;
    onSuccess(event: any): void;
    onError(event: FileUploadErrorEvent): void;
    getNextMinorVersion(version: string): string;
    getNextMajorVersion(version: string): string;
    private getParsedVersion;
    static ɵfac: i0.ɵɵFactoryDeclaration<VersionUploadComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<VersionUploadComponent, "adf-version-upload", never, { "node": { "alias": "node"; "required": true; }; "newFileVersion": { "alias": "newFileVersion"; "required": false; }; "showUploadButton": { "alias": "showUploadButton"; "required": false; }; "showCancelButton": { "alias": "showCancelButton"; "required": false; }; "currentVersion": { "alias": "currentVersion"; "required": false; }; }, { "success": "success"; "error": "error"; "cancel": "cancel"; "versionChanged": "versionChanged"; "commentChanged": "commentChanged"; "uploadStarted": "uploadStarted"; }, never, never, true, never>;
}

declare class VersionComparisonComponent {
    thumbnailService: ThumbnailService;
    /** Target node. */
    node: Node;
    /** New file for updating current version. */
    newFileVersion: File;
    static ɵfac: i0.ɵɵFactoryDeclaration<VersionComparisonComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<VersionComparisonComponent, "adf-version-comparison", never, { "node": { "alias": "node"; "required": true; }; "newFileVersion": { "alias": "newFileVersion"; "required": true; }; }, {}, never, never, true, never>;
}

declare class ContentVersionService {
    private readonly alfrescoApi;
    readonly contentApi: ContentApi;
    /**
     * Get content URL for the given nodeId and specific version.
     *
     * @param nodeId The ID of the node
     * @param versionId The ID of the version
     * @param attachment Retrieve content as an attachment for download
     * @returns The URL address pointing to the content.
     */
    getVersionContentUrl(nodeId: string, versionId: string, attachment?: boolean): Observable<string>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentVersionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentVersionService>;
}

declare const CONTENT_VERSION_DIRECTIVES: readonly [typeof VersionUploadComponent, typeof VersionManagerComponent, typeof VersionListComponent, typeof VersionComparisonComponent];
/** @deprecated use `...CONTENT_VERSION_DIRECTIVES` instead */
declare class VersionManagerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<VersionManagerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<VersionManagerModule, never, [typeof VersionUploadComponent, typeof VersionManagerComponent, typeof VersionListComponent, typeof VersionComparisonComponent], [typeof VersionUploadComponent, typeof VersionManagerComponent, typeof VersionListComponent, typeof VersionComparisonComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<VersionManagerModule>;
}

/*!
 * @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.
 */

declare class NameLocationCellComponent implements OnInit {
    name: string;
    path: string;
    row: DataRow;
    ngOnInit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NameLocationCellComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NameLocationCellComponent, "adf-name-location-cell", never, { "row": { "alias": "row"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare const Relations: {
    readonly Members: "members";
    readonly Containers: "containers";
};
type Relations = (typeof Relations)[keyof typeof Relations];
declare class DropdownSitesComponent implements OnInit {
    private readonly authService;
    private readonly sitesService;
    private readonly liveAnnouncer;
    private readonly translateService;
    /** Hide the "My Files" option. */
    hideMyFiles: boolean;
    /**
     * A custom list of sites to be displayed by the dropdown. If no value
     * is given, the sites of the current user are displayed by default. A
     * list of objects only with properties 'title' and 'guid' is enough to
     * be able to display the dropdown.
     */
    siteList: SitePaging;
    /** Id of the selected site */
    value: string;
    /**
     * Text or a translation key to act as a placeholder. Default value is the
     * key "DROPDOWN.PLACEHOLDER_LABEL".
     */
    placeholder: string;
    /**
     * Filter for the results of the sites query. Possible values are
     * "members" and "containers". When "members" is used, the site list
     * will be restricted to the sites that the user is a member of.
     */
    relations: string;
    /**
     * Emitted when the user selects a site. When the default option is selected,
     * an empty model is emitted.
     */
    change: EventEmitter<SiteEntry>;
    error: EventEmitter<any>;
    private loading;
    private skipCount;
    selected: SiteEntry;
    MY_FILES_VALUE: string;
    get isLoading(): boolean;
    ngOnInit(): void;
    loadAllOnScroll(): void;
    selectedSite(event: MatSelectChange): void;
    private loadSiteList;
    showLoading(): boolean;
    isInfiniteScrollingEnabled(): boolean;
    private siteListHasMoreItems;
    private filteredResultsByMember;
    private isCurrentUserMember;
    static ɵfac: i0.ɵɵFactoryDeclaration<DropdownSitesComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DropdownSitesComponent, "adf-sites-dropdown", never, { "hideMyFiles": { "alias": "hideMyFiles"; "required": false; }; "siteList": { "alias": "siteList"; "required": false; }; "value": { "alias": "value"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "relations": { "alias": "relations"; "required": false; }; }, { "change": "change"; "error": "error"; }, never, never, true, never>;
}

/*!
 * @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.
 */

interface ContentNodeSelectorComponentData {
    title: string;
    actionName?: NodeAction;
    currentFolderId: string;
    dropdownHideMyFiles?: boolean;
    restrictRootToCurrentFolderId?: boolean;
    dropdownSiteList?: SitePaging;
    rowFilter?: any;
    where?: string;
    imageResolver?: any;
    selectionMode?: 'multiple' | 'single';
    isSelectionValid?: (entry: Node) => boolean;
    breadcrumbTransform?: (node: any) => any;
    excludeSiteContent?: string[];
    select: Subject<Node[]>;
    showSearch?: boolean;
    showFilesInResult?: boolean;
    showDropdownSiteList?: boolean;
    showLocalUploadButton?: boolean;
    multipleUpload?: boolean;
}

/*!
 * @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.
 */

type ValidationFunction = (entry: Node) => boolean;
declare const defaultValidation: () => boolean;
declare class ContentNodeSelectorPanelComponent implements OnInit {
    private readonly customResourcesService;
    private readonly queryBuilderService;
    private readonly userPreferencesService;
    private readonly nodesApiService;
    private readonly uploadService;
    private readonly sitesService;
    private readonly contentNodeSelectorPanelService;
    DEFAULT_PAGINATION: Pagination;
    readonly disableActionFolderList: string[];
    private showSiteList;
    private showSearchField;
    private showCounter;
    private _emptyList;
    private lastParentFilterQuery;
    /** If true will restrict the search and breadcrumbs to the currentFolderId */
    restrictRootToCurrentFolderId: boolean;
    /** Node ID of the folder currently listed. */
    currentFolderId: string;
    /**
     * Hide the "My Files" option added to the site list by default.
     * See the [Sites Dropdown component](sites-dropdown.component.md)
     * for more information.
     */
    dropdownHideMyFiles: boolean;
    /**
     * Custom site for site dropdown. This is the same as the `siteList`.
     * property of the Sites Dropdown component (see its doc page
     * for more information).
     */
    dropdownSiteList: SitePaging;
    _rowFilter: RowFilter;
    /**
     * Custom *where* filter function. See the
     * Document List component
     * for more information.
     */
    where: string;
    /**
     * Custom row filter function. See the
     * [Row Filter Model](row-filter.model.md) page
     * for more information.
     */
    set rowFilter(rowFilter: RowFilter);
    get rowFilter(): RowFilter;
    _excludeSiteContent: string[];
    /**
     * Custom list of site content componentIds.
     * Used to filter out the corresponding items from the displayed nodes
     */
    set excludeSiteContent(excludeSiteContent: string[]);
    get excludeSiteContent(): string[];
    /**
     * Custom image resolver function. See the
     * [Image Resolver Model](image-resolver.model.md) page
     * for more information.
     */
    imageResolver: ImageResolver;
    /** Number of items shown per page in the list. */
    pageSize: number;
    /** Define the selection mode for document list. The allowed values are single or multiple */
    selectionMode: 'single' | 'multiple';
    /**
     * Function used to decide if the selected node has permission to be selected.
     * Default value is a function that always returns true.
     */
    isSelectionValid: ValidationFunction;
    /**
     * Transformation to be performed on the chosen/folder node before building the
     * breadcrumb UI. Can be useful when custom formatting is needed for the breadcrumb.
     * You can change the path elements from the node that are used to build the
     * breadcrumb using this function.
     */
    breadcrumbTransform: (node: any) => any;
    /** Toggle search input rendering */
    set showSearch(value: boolean);
    get showSearch(): boolean;
    /** Toggle sites list dropdown rendering */
    set showDropdownSiteList(value: boolean);
    get showDropdownSiteList(): boolean;
    /** Shows the files and folders in the search result */
    set showFilesInResult(value: boolean);
    /** Shows the node counter in the breadcrumb */
    set showNodeCounter(value: boolean);
    get showNodeCounter(): boolean;
    /** Emitted when the user has chosen an item. */
    select: EventEmitter<Node[]>;
    /** Emitted when the navigation changes. */
    navigationChange: EventEmitter<NodeEntryEvent>;
    /** Emitted when the select site changes. */
    siteChange: EventEmitter<string>;
    /** Emitted when search is running. */
    showingSearch: EventEmitter<boolean>;
    /** Emitted when current folder loaded. */
    currentFolder: EventEmitter<Node>;
    /** Emitted when folder loaded. */
    folderLoaded: EventEmitter<any>;
    documentList: DocumentListComponent;
    highlighter: HighlightDirective;
    nodePaging: NodePaging | null;
    siteId: null | string;
    breadcrumbRootId: null | string;
    searchTerm: string;
    showingSearchResults: boolean;
    loadingSearchResults: boolean;
    inDialog: boolean;
    _chosenNode: Node[];
    selectionWithoutValidation: Node[];
    folderIdToShow: string | null;
    breadcrumbFolderTitle: string | null;
    startSiteGuid: string | null;
    showHeader: "never";
    infinitePaginationComponent: InfinitePaginationComponent;
    infiniteScroll: boolean;
    debounceSearch: number;
    searchInput: UntypedFormControl;
    target: PaginatedComponent;
    preselectedNodes: NodeEntry[];
    currentUploadBatch: NodeEntry[];
    sorting: string[] | DataSorting;
    searchPanelExpanded: boolean;
    private readonly destroyRef;
    set chosenNode(value: Node[]);
    get chosenNode(): Node[];
    get emptyList(): boolean;
    getSelectedCount(): number;
    ngOnInit(): void;
    toggleSearchPanel(): void;
    hasCustomModels(): boolean;
    private onFileUploadEvent;
    private onFileUploadDeletedEvent;
    private getStartSite;
    private createRowFilter;
    private isExcludedSiteContent;
    /**
     * Updates the site attribute and starts a new search
     *
     * @param chosenSite SiteEntry to search within
     */
    siteChanged(chosenSite: SiteEntry): void;
    /**
     * Get current breadcrumb folder node
     *
     * @returns the actually selected|entered folder node or null in case of searching for the breadcrumb
     */
    get breadcrumbFolderNode(): Node | null;
    /**
     * Prepares the dialog for a new search
     */
    prepareDialogForNewSearch(): void;
    /**
     * Clear the search input and reset to last folder node in which search was performed
     */
    clear(): void;
    /**
     * Resets the folder to be shown with the site selection or the initial landing folder
     */
    resetFolderToShow(): void;
    /**
     * Clear the search input and search related data
     */
    clearSearch(): void;
    private addCorrespondingNodeIdsQuery;
    private setParentFilterQuery;
    private setSearchScopeToNodes;
    /**
     * Show the results of the search
     *
     * @param results Search results
     */
    private showSearchResults;
    /**
     * Sets showingSearchResults state to be able to differentiate between search results or folder results
     *
     * @param $event node event
     */
    onFolderChange($event: NodeEntryEvent): void;
    /**
     * Attempts to set the currently loaded node
     *
     * @param nodePaging pagination model
     */
    onFolderLoaded(nodePaging: NodePaging): void;
    /**
     * Updates pagination.hasMoreItems to false after filtering only folders during 'COPY' and 'MOVE' action
     *
     * @param nodePaging pagination model
     */
    updatePaginationAfterRowFilter(nodePaging: NodePaging): void;
    /**
     * Returns whether breadcrumb has to be shown or not
     *
     * @returns `true` if needs to show the breadcrumb, otherwise `false`
     */
    showBreadcrumbs(): true | Node[];
    /**
     * Loads the next batch of search results
     *
     * @param pagination Pagination object
     */
    getNextPageOfSearch(pagination: Pagination): void;
    /**
     * Selects node as chosen if it has the right permission, clears the selection otherwise
     *
     * @param entry node entry
     */
    private attemptNodeSelection;
    private isActionDisabledForFolder;
    /**
     * Clears the chosen node
     */
    resetChosenNode(): void;
    /**
     * It filters and emit the selection coming from the document list
     *
     * @param nodesEntries selected nodes
     */
    onCurrentSelection(nodesEntries: NodeEntry[]): void;
    setTitleIfCustomSite(site: SiteEntry): void;
    hasPreselectNodes(): boolean;
    isSingleSelectionMode(): boolean;
    getPreselectNodesBasedOnSelectionMode(): NodeEntry[];
    private resetPagination;
    private executeSearch;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentNodeSelectorPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentNodeSelectorPanelComponent, "adf-content-node-selector-panel", never, { "restrictRootToCurrentFolderId": { "alias": "restrictRootToCurrentFolderId"; "required": false; }; "currentFolderId": { "alias": "currentFolderId"; "required": true; }; "dropdownHideMyFiles": { "alias": "dropdownHideMyFiles"; "required": false; }; "dropdownSiteList": { "alias": "dropdownSiteList"; "required": false; }; "where": { "alias": "where"; "required": false; }; "rowFilter": { "alias": "rowFilter"; "required": false; }; "excludeSiteContent": { "alias": "excludeSiteContent"; "required": false; }; "imageResolver": { "alias": "imageResolver"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; "isSelectionValid": { "alias": "isSelectionValid"; "required": false; }; "breadcrumbTransform": { "alias": "breadcrumbTransform"; "required": false; }; "showSearch": { "alias": "showSearch"; "required": false; }; "showDropdownSiteList": { "alias": "showDropdownSiteList"; "required": false; }; "showFilesInResult": { "alias": "showFilesInResult"; "required": false; }; "showNodeCounter": { "alias": "showNodeCounter"; "required": false; }; }, { "select": "select"; "navigationChange": "navigationChange"; "siteChange": "siteChange"; "showingSearch": "showingSearch"; "currentFolder": "currentFolder"; "folderLoaded": "folderLoaded"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class ContentNodeSelectorComponent implements OnInit {
    private readonly translation;
    private readonly contentService;
    private readonly notificationService;
    private readonly uploadService;
    private readonly dialog;
    private readonly overlayContainer;
    data: ContentNodeSelectorComponentData;
    title: string;
    action: NodeAction;
    buttonActionName: string;
    chosenNode: Node[];
    currentDirectoryId: string;
    showingSearch: boolean;
    hasAllowableOperations: boolean;
    isLoading: boolean;
    selectedTabIndex: number;
    uploadStarted: boolean;
    emptyFolderImageUrl: string;
    breadcrumbFolderNode: Node;
    private readonly destroyRef;
    constructor();
    ngOnInit(): void;
    close(): void;
    onSelect(nodeList: Node[]): void;
    onSiteChange(siteTitle: string): void;
    onNavigationChange(pathElement: NodeEntryEvent): void;
    onClick(): void;
    updateTitle(siteTitle: string): void;
    getTitleTranslation(action: NodeAction, name: string): string;
    getSelectedCount(): number;
    isCounterVisible(): boolean;
    isMultipleSelection(): boolean;
    onError(error: any): void;
    isChooseButtonDisabled(): boolean;
    hasNodeSelected(): boolean;
    onShowingSearch(value: boolean): void;
    onCurrentFolder(currentFolder: Node): void;
    isNotAllowedToUpload(): boolean;
    onFolderLoaded(): void;
    onTabSelectionChange(tabIndex: number): void;
    isFileServerTabSelected(): boolean;
    isLocalUploadTabSelected(): boolean;
    isUploadEnabled(): boolean;
    canPerformLocalUpload(): boolean;
    getWarningMessage(): string;
    hasNoPermissionToUpload(): boolean;
    hasUploadError(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentNodeSelectorComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentNodeSelectorComponent, "adf-content-node-selector", never, {}, {}, never, never, true, never>;
}

declare class ContentNodeDialogService {
    private readonly dialog;
    private readonly contentService;
    private readonly documentListService;
    private readonly siteService;
    private readonly translation;
    private readonly thumbnailService;
    static nonDocumentSiteContent: string[];
    /** Emitted when an error occurs. */
    error: EventEmitter<any>;
    /**
     * Opens a file browser at a chosen folder location.
     * shows files and folders in the dialog search result.
     *
     * @param folderNodeId ID of the folder to use
     * @returns Information about the selected file(s)
     */
    openFileBrowseDialogByFolderId(folderNodeId: string): Observable<Node[]>;
    /**
     * Opens a lock node dialog.
     *
     * @param contentEntry Node to lock
     * @returns Error/status message (if any)
     */
    openLockNodeDialog(contentEntry: Node): Subject<string>;
    /**
     * Opens a file browser at a chosen site location.
     * shows files and folders in the dialog search result.
     *
     * @returns Information about the selected file(s)
     */
    openFileBrowseDialogBySite(): Observable<Node[]>;
    /**
     * Opens a file browser at a default myFile location.
     * shows files and folders in the dialog search result.
     *
     * @returns Information about the selected file(s)
     */
    openFileBrowseDialogByDefaultLocation(): Observable<Node[]>;
    /**
     * Opens a folder browser at a chosen site location.
     *
     * @returns Information about the selected folder(s)
     */
    openFolderBrowseDialogBySite(): Observable<Node[]>;
    /**
     * Opens a folder browser at a chosen folder location.
     *
     * @param folderNodeId ID of the folder to use
     * @returns Information about the selected folder(s)
     */
    openFolderBrowseDialogByFolderId(folderNodeId: string): Observable<Node[]>;
    /**
     * Opens a dialog to copy or move an item to a new location.
     *
     * @param action Name of the action (eg, "Copy" or "Move") to show in the title
     * @param contentEntry Item to be copied or moved
     * @param permission Permission for the operation
     * @param excludeSiteContent The site content that should be filtered out
     * @returns Information about files that were copied/moved
     */
    openCopyMoveDialog(action: NodeAction, contentEntry: Node, permission?: string, excludeSiteContent?: string[]): Observable<Node[]>;
    /**
     * Gets the translation of the dialog title.
     *
     * @param action Name of the action to display in the dialog title
     * @param name Name of the item on which the action is being performed
     * @returns Translated version of the title
     */
    getTitleTranslation(action: string, name: string): string;
    /**
     * Opens a dialog to choose folders to upload.
     *
     * @param action Name of the action to show in the title
     * @param contentEntry  Item to upload
     * @returns Information about the chosen folder(s)
     */
    openUploadFolderDialog(action: NodeAction, contentEntry: Node): Observable<Node[]>;
    /**
     * Opens a dialog to choose a file to upload.
     *
     * @param action Name of the action to show in the title
     * @param contentEntry Item to upload
     * @param showFilesInResult Show files in dialog search result
     * @returns Information about the chosen file(s)
     */
    openUploadFileDialog(action: NodeAction, contentEntry: Node, showFilesInResult?: boolean): Observable<Node[]>;
    private openContentNodeDialog;
    private imageResolver;
    private hasAllowableOperationsOnNodeFolder;
    private isNodeFolder;
    private isCopyMoveSelectionValid;
    private hasEntityCreatePermission;
    private isSite;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentNodeDialogService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentNodeDialogService>;
}

declare class ContentNodeSelectorPanelService {
    propertyTypes: string[];
    modelPropertyTypeToSearchFilterTypeMap: Map<string, string>;
    customModels: any[];
    constructor();
    convertCustomModelPropertiesToSearchCategories(): SearchCategory[];
    convertModelPropertyIntoSearchFilter(modelProperty: any): SearchCategory;
    isTypeSupported(dataType: string): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentNodeSelectorPanelService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentNodeSelectorPanelService>;
}

declare const CONTENT_NODE_SELECTOR_DIRECTIVES: (typeof DropdownSitesComponent | typeof NameLocationCellComponent | typeof ContentNodeSelectorPanelComponent | typeof ContentNodeSelectorComponent)[];
/** @deprecated use `...CONTENT_NODE_SELECTOR_DIRECTIVES` or import the individual components */
declare class ContentNodeSelectorModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentNodeSelectorModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ContentNodeSelectorModule, never, [typeof ContentNodeSelectorPanelComponent, typeof NameLocationCellComponent, typeof ContentNodeSelectorComponent, typeof DropdownSitesComponent], [typeof ContentNodeSelectorPanelComponent, typeof NameLocationCellComponent, typeof ContentNodeSelectorComponent, typeof DropdownSitesComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ContentNodeSelectorModule>;
}

declare class FolderDialogComponent implements OnInit {
    private readonly formBuilder;
    private readonly dialog;
    private readonly nodesApi;
    private readonly translation;
    data: any;
    /**
     * Emitted when the edit/create folder give error for example a folder with same name already exist
     */
    error: EventEmitter<any>;
    /**
     * Emitted when the edit/create folder is successfully created/modified
     */
    success: EventEmitter<Node>;
    form: UntypedFormGroup;
    folder: Node;
    editTitle: string;
    createTitle: string;
    nodeType: string;
    disableSubmitButton: boolean;
    get editing(): boolean;
    get name(): string;
    get title(): string;
    get description(): string;
    private get properties();
    private readonly destroyRef;
    private readonly notificationService;
    constructor();
    ngOnInit(): void;
    submit(): void;
    handleError(error: any): any;
    private create;
    private edit;
    private getTrimmedValue;
    static ɵfac: i0.ɵɵFactoryDeclaration<FolderDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<FolderDialogComponent, "adf-folder-dialog", never, {}, { "error": "error"; "success": "success"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodeLockDialogComponent implements OnInit {
    private readonly formBuilder;
    dialog: MatDialogRef<NodeLockDialogComponent, any>;
    private readonly alfrescoApi;
    data: any;
    form: UntypedFormGroup;
    node: Node;
    nodeName: string;
    readonly nodesApi: NodesApi;
    ngOnInit(): void;
    private get lockTimeInSeconds();
    private get nodeBodyLock();
    private toggleLock;
    submit(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeLockDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NodeLockDialogComponent, "adf-node-lock", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

interface CategorySelectorDialogOptions {
    select: Subject<Category[]>;
    multiSelect?: boolean;
}
declare class CategorySelectorDialogComponent implements OnInit {
    private readonly dialog;
    private readonly options;
    categories: Category[];
    categoriesManagementMode: "ASSIGN";
    multiSelect: boolean;
    ngOnInit(): void;
    selectCategories(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<CategorySelectorDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CategorySelectorDialogComponent, "adf-category-selector-dialog", never, {}, {}, never, never, true, never>;
}

interface VisibilityOption {
    value: string;
    label: string;
    disabled: boolean;
}
declare class LibraryDialogComponent implements OnInit {
    private readonly alfrescoApiService;
    private readonly sitesService;
    private readonly formBuilder;
    private readonly dialog;
    private readonly notificationService;
    /** Emitted when an error occurs. */
    error: EventEmitter<any>;
    /**
     * Emitted when the new library is created successfully. The
     * event parameter is a SiteEntry object with the details of the
     * newly-created library.
     */
    success: EventEmitter<SiteEntry>;
    createTitle: string;
    libraryTitleExists: boolean;
    form: UntypedFormGroup;
    visibilityOption: string;
    visibilityOptions: VisibilityOption[];
    disableCreateButton: boolean;
    readonly queriesApi: QueriesApi;
    private readonly destroyRef;
    ngOnInit(): void;
    get title(): string;
    get id(): string;
    get description(): string;
    get visibility(): string;
    submit(): void;
    visibilityChangeHandler(event: MatRadioChange): void;
    private create;
    private sanitize;
    private canGenerateId;
    private handleError;
    private checkLibraryNameExists;
    private findLibraryByTitle;
    private forbidSpecialCharacters;
    private forbidOnlySpaces;
    private minLengthTrimmed;
    private createSiteIdValidator;
    private checkSite;
    static ɵfac: i0.ɵɵFactoryDeclaration<LibraryDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<LibraryDialogComponent, "adf-library-dialog", never, {}, { "error": "error"; "success": "success"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class DownloadZipDialogComponent implements OnInit {
    private readonly dialogRef;
    data: any;
    private readonly downloadZipService;
    private readonly nodeService;
    private readonly contentService;
    cancelled: boolean;
    downloadId: string;
    percentageDone: number;
    ngOnInit(): void;
    cancelDownload(): void;
    downloadZip(nodeIds: string[]): void;
    waitAndDownload(downloadId: string, url: string, fileName: string): void;
    download(url: string, fileName: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<DownloadZipDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<DownloadZipDialogComponent, "adf-download-zip-dialog", never, {}, {}, never, never, true, never>;
}

/** @deprecated use standalone component imports instead */
declare const CONTENT_DIALOG_DIRECTIVES: (typeof DownloadZipDialogComponent | typeof NodeLockDialogComponent | typeof FolderDialogComponent | typeof CategorySelectorDialogComponent | typeof LibraryDialogComponent)[];
/** @deprecated use standalone component imports instead */
declare class DialogModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DialogModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DialogModule, never, [typeof DownloadZipDialogComponent, typeof FolderDialogComponent, typeof NodeLockDialogComponent, typeof LibraryDialogComponent, typeof CategorySelectorDialogComponent], [typeof DownloadZipDialogComponent, typeof FolderDialogComponent, typeof NodeLockDialogComponent, typeof LibraryDialogComponent, typeof CategorySelectorDialogComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DialogModule>;
}

/** @deprecated use DownloadZipDialogComponent instead */
declare class DownloadZipDialogModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<DownloadZipDialogModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<DownloadZipDialogModule, never, [typeof DownloadZipDialogComponent], [typeof DownloadZipDialogComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<DownloadZipDialogModule>;
}

/*!
 * @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.
 */

declare const forbidSpecialCharacters: ({ value }: UntypedFormControl) => {
    message: string;
};
declare const forbidEndingDot: ({ value }: UntypedFormControl) => {
    message: string;
};
declare const forbidOnlySpaces: ({ value }: UntypedFormControl) => {
    message: string;
};

/*!
 * @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.
 */
declare interface AspectOrientedConfig {
    [key: string]: string | string[] | boolean;
}

/*!
 * @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.
 */
interface Property {
    name: string;
    title: string;
    description?: string;
    dataType: string;
    defaultValue?: any;
    mandatory: boolean;
    multiValued: boolean;
    editable?: boolean;
    protected?: boolean;
    enforced?: boolean;
    indexed?: boolean;
    url?: string;
}

/*!
 * @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.
 */

interface PropertyGroup {
    name: string;
    title: string;
    description?: string;
    properties: {
        [key: string]: Property;
    };
}
interface PropertyGroupContainer {
    [key: string]: PropertyGroup;
}

/*!
 * @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.
 */

interface OrganisedPropertyGroup {
    title: string;
    name?: string;
    properties: Property[];
}

/*!
 * @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.
 */

interface CardViewGroup {
    title: string;
    properties: CardViewItem[];
    editable: boolean;
    expanded?: boolean;
}

/*!
 * @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.
 */

interface ContentMetadataConfig {
    isGroupAllowed(groupName: string): boolean;
    reorganiseByConfig(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[];
    filterExcludedPreset(propertyGroups: OrganisedPropertyGroup[]): OrganisedPropertyGroup[];
    appendAllPreset(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[];
    isIncludeAllEnabled(): boolean;
}

/*!
 * @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.
 */
declare type InDifferentConfig = '*';

/*!
 * @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.
 */

interface LayoutOrientedConfigItem {
    aspect?: string;
    type?: string;
    properties: string | string[] | Property[];
    includeAll?: boolean;
    exclude?: string | string[];
    editable?: boolean;
}
interface LayoutOrientedConfigLayoutBlock {
    title: string;
    items: LayoutOrientedConfigItem[];
}
type LayoutOrientedConfig = Array<LayoutOrientedConfigLayoutBlock>;

/*!
 * @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.
 */

declare type PresetConfig = InDifferentConfig | AspectOrientedConfig | LayoutOrientedConfig;

/*!
 * @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.
 */
interface ContentMetadataPanel {
    panelTitle: string;
    expanded?: boolean;
}

/*!
 * @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.
 */

interface ContentMetadataCustomPanel extends ContentMetadataPanel {
    component: string;
}

/*!
 * @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.
 */

declare const DefaultPanels: {
    readonly PROPERTIES: "Properties";
    readonly TAGS: "Tags";
    readonly CATEGORIES: "Categories";
};
type DefaultPanels = (typeof DefaultPanels)[keyof typeof DefaultPanels];
declare class ContentMetadataComponent implements OnChanges, OnInit {
    private readonly contentMetadataService;
    private readonly cardViewContentUpdateService;
    private readonly nodesApiService;
    private readonly translationService;
    private readonly appConfig;
    private readonly tagService;
    private readonly categoryService;
    private readonly contentService;
    private readonly notificationService;
    /** (required) The node entity to fetch metadata about */
    node: Node;
    /** Toggles whether to display empty values in the card view */
    displayEmpty: boolean;
    /**
     * Toggles between expanded (ie, full information) and collapsed
     * (ie, reduced information) in the display
     */
    expanded: boolean;
    /** The multi parameter of the underlying material expansion panel, set to true to allow multi accordion to be expanded at the same time */
    multi: boolean;
    /** Name or configuration of the metadata preset, which defines aspects and their properties */
    preset: string | PresetConfig;
    /** Toggles whether the metadata properties should be shown */
    displayDefaultProperties: boolean;
    /** (optional) shows the given aspect in the expanded  card */
    displayAspect: string;
    /** Toggles whether or not to enable copy to clipboard action. */
    copyToClipboardAction: boolean;
    /** Toggles whether or not to enable chips for multivalued properties. */
    useChipsForMultiValueProperty: boolean;
    /** True if tags should be displayed, false otherwise */
    displayTags: boolean;
    /** True if categories should be displayed, false otherwise */
    displayCategories: boolean;
    /** List of custom metadata panels to be displayed with registered custom components */
    customPanels: ContentMetadataCustomPanel[];
    /**
     * (optional) This flag sets the metadata in read-only mode,
     * preventing changes.
     */
    readOnly: boolean;
    private _assignedTags;
    private assignedTagsEntries;
    private readonly _tagsCreatorMode;
    private _tags;
    private targetProperty;
    private readonly classifiableChangedSubject;
    private _saving;
    DefaultPanels: {
        readonly PROPERTIES: "Properties";
        readonly TAGS: "Tags";
        readonly CATEGORIES: "Categories";
    };
    multiValueSeparator: string;
    basicProperties$: Observable<CardViewItem[]>;
    groupedProperties$: Observable<CardViewGroup[]>;
    tagsToDisplay: Chip[];
    changedProperties: {};
    hasMetadataChanged: boolean;
    assignedCategories: Category[];
    categories: Category[];
    categoriesManagementMode: "ASSIGN";
    classifiableChanged: Observable<void>;
    editing: boolean;
    invalidProperties: Set<string>;
    editedPanelTitle: string;
    currentPanel: ContentMetadataPanel;
    private readonly destroyRef;
    constructor();
    ngOnInit(): void;
    private verifyAllowableOperations;
    get assignedTags(): string[];
    set tags(tags: string[]);
    get tags(): string[];
    get tagsCreatorMode(): TagsCreatorMode;
    get saving(): boolean;
    isPanelEditing(panelTitle: string): boolean;
    protected handleUpdateError(error: Error): void;
    ngOnChanges(changes: SimpleChanges): void;
    updateChanges(updatedNodeChanges: any): void;
    saveChanges(event?: MouseEvent): void;
    /**
     * Register all tags which should be assigned to node. Please note that they are just in "register" state and are not yet saved
     * until button for saving data is clicked. Calling that function causes that save button is enabled.
     *
     * @param tags array of tags to register, they are not saved yet until we click save button.
     */
    storeTagsToAssign(tags: string[]): void;
    /**
     * Store all categories that node should be assigned to. Please note that they are just in "stored" state and are not yet saved
     * until button for saving data is clicked. Calling that function causes that save button is enabled.
     *
     * @param categoriesToAssign array of categories to store.
     */
    storeCategoriesToAssign(categoriesToAssign: Category[]): void;
    revertChanges(): void;
    get showEmptyTagMessage(): boolean;
    get showEmptyCategoryMessage(): boolean;
    toggleGroupEditing(panelTitle: string, event?: MouseEvent): void;
    cancelGroupEditing(panelTitle: string, event?: MouseEvent): void;
    expandPanel(panelTitle: string): void;
    closePanel(panelTitle: string): void;
    resetEditing(): void;
    showGroup(group: CardViewGroup): boolean;
    keyDown(event: KeyboardEvent): void;
    private updateNode;
    private hasContentTypeChanged;
    private updateUndefinedNodeProperties;
    private loadProperties;
    private getProperties;
    private isEmpty;
    private loadCategoriesForNode;
    private saveCategories;
    private loadTagsForNode;
    private saveTags;
    private updateInvalidProperties;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentMetadataComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentMetadataComponent, "adf-content-metadata", never, { "node": { "alias": "node"; "required": true; }; "displayEmpty": { "alias": "displayEmpty"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; "multi": { "alias": "multi"; "required": false; }; "preset": { "alias": "preset"; "required": true; }; "displayDefaultProperties": { "alias": "displayDefaultProperties"; "required": false; }; "displayAspect": { "alias": "displayAspect"; "required": false; }; "copyToClipboardAction": { "alias": "copyToClipboardAction"; "required": false; }; "useChipsForMultiValueProperty": { "alias": "useChipsForMultiValueProperty"; "required": false; }; "displayTags": { "alias": "displayTags"; "required": false; }; "displayCategories": { "alias": "displayCategories"; "required": false; }; "customPanels": { "alias": "customPanels"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; }, {}, never, never, true, never>;
}

declare class ContentMetadataHeaderComponent {
    title: string;
    expanded: boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentMetadataHeaderComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentMetadataHeaderComponent, "adf-content-metadata-header", never, { "title": { "alias": "title"; "required": false; }; "expanded": { "alias": "expanded"; "required": false; }; }, {}, never, ["*"], true, never>;
}

/*!
 * @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.
 */

declare class ContentMetadataCardComponent implements OnChanges {
    private readonly contentService;
    private readonly nodeAspectService;
    private readonly versionCompatibilityService;
    /** (required) The node entity to fetch metadata about */
    node: Node;
    /**
     * This flag displays/hides empty metadata
     * fields.
     */
    displayEmpty?: boolean;
    /**
     * This flag displays desired aspect when open for the first time fields.
     */
    displayAspect?: string;
    /** Display tags in the card */
    displayTags: boolean;
    /** Display categories in the card */
    displayCategories: boolean;
    /**
     * Name or configuration of the metadata preset, which defines aspects
     * and their properties.
     */
    preset: string | PresetConfig;
    /**
     * This flag sets the metadata in read only mode preventing changes.
     */
    readOnly?: boolean;
    /**
     * This flag allows the component to display more
     * than one accordion at a time.
     */
    multi?: boolean;
    /** This flag toggles editable of content. */
    editable?: boolean;
    /** List of custom metadata panels to be displayed with registered custom components */
    customPanels: ContentMetadataCustomPanel[];
    private _displayDefaultProperties;
    /**
     * This flag displays/hides the metadata properties.
     */
    set displayDefaultProperties(value: boolean);
    get displayDefaultProperties(): boolean;
    expanded: boolean;
    editAspectSupported: boolean;
    constructor();
    ngOnChanges(changes: SimpleChanges): void;
    onDisplayDefaultPropertiesChange(): void;
    hasAllowableOperations(): boolean;
    openAspectDialog(): void;
    isEditAspectSupported(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentMetadataCardComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentMetadataCardComponent, "adf-content-metadata-card", never, { "node": { "alias": "node"; "required": true; }; "displayEmpty": { "alias": "displayEmpty"; "required": false; }; "displayAspect": { "alias": "displayAspect"; "required": false; }; "displayTags": { "alias": "displayTags"; "required": false; }; "displayCategories": { "alias": "displayCategories"; "required": false; }; "preset": { "alias": "preset"; "required": true; }; "readOnly": { "alias": "readOnly"; "required": false; }; "multi": { "alias": "multi"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "customPanels": { "alias": "customPanels"; "required": false; }; "displayDefaultProperties": { "alias": "displayDefaultProperties"; "required": false; }; }, {}, never, never, true, never>;
}

declare class BasicPropertiesService {
    private readonly injector;
    getProperties(node: Node): (CardViewTextItemModel | CardViewDateItemModel)[];
    static ɵfac: i0.ɵɵFactoryDeclaration<BasicPropertiesService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<BasicPropertiesService>;
}

declare class ContentMetadataService {
    private readonly basicPropertiesService;
    private readonly contentMetadataConfigFactory;
    private readonly propertyGroupTranslatorService;
    private readonly propertyDescriptorsService;
    private readonly contentTypePropertyService;
    error: Subject<{
        statusCode: number;
        message: string;
    }>;
    getBasicProperties(node: Node): Observable<CardViewItem[]>;
    getContentTypeProperty(node: Node): Observable<CardViewItem[]>;
    openConfirmDialog(changedProperties: any): Observable<any>;
    getGroupedProperties(node: Node, preset?: string | PresetConfig): Observable<CardViewGroup[]>;
    setTitleToNameIfNotSet(propertyGroups: OrganisedPropertyGroup[]): OrganisedPropertyGroup[];
    filterEmptyPreset(propertyGroups: OrganisedPropertyGroup[]): OrganisedPropertyGroup[];
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentMetadataService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentMetadataService>;
}

declare class PropertyDescriptorsService {
    private readonly alfrescoApiService;
    readonly classesApi: ClassesApi;
    load(groupNames: string[]): Observable<PropertyGroupContainer>;
    private convertToObject;
    static ɵfac: i0.ɵɵFactoryDeclaration<PropertyDescriptorsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PropertyDescriptorsService>;
}

declare const RECOGNISED_ECM_TYPES: string[];
declare class PropertyGroupTranslatorService {
    private readonly appConfig;
    private readonly logService;
    valueSeparator: string;
    private readonly injector;
    constructor();
    translateToCardViewGroups(propertyGroups: OrganisedPropertyGroup[], propertyValues: any, definition: Definition): CardViewGroup[];
    translateProperty(property: Property$1, startValue?: any, allowEditing?: boolean): CardViewItem;
    private translateArray;
    private translate;
    private transform;
    private isListOfValues;
    private getPropertyConstraints;
    private checkECMTypeValidity;
    private isEmpty;
    private getDecimalNumberPipe;
    static ɵfac: i0.ɵɵFactoryDeclaration<PropertyGroupTranslatorService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PropertyGroupTranslatorService>;
}

declare class ContentMetadataConfigFactory {
    private readonly appConfigService;
    private readonly logService;
    get(presetName?: string): ContentMetadataConfig;
    createConfig(presetConfig: PresetConfig): ContentMetadataConfig;
    private isAspectOrientedPreset;
    private isLayoutOrientedPreset;
    private isObject;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentMetadataConfigFactory, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentMetadataConfigFactory>;
}

declare class ContentTypePropertiesService {
    private readonly contentTypeService;
    private readonly dialog;
    private readonly versionCompatibilityService;
    private readonly propertyGroupTranslatorService;
    getContentTypeCardItem(node: Node): Observable<CardViewItem[]>;
    buildCardItemsFromPropertyList(properties: Property$1[], currentProperties: any): CardViewItem[];
    private buildCardItemFromProperty;
    private getContentTypeSpecificProperties;
    private buildContentTypeTextCardModel;
    private buildContentTypeSelectCardModel;
    private getContentTypesAsSelectOption;
    private appendCurrentType;
    openContentTypeDialogConfirm(nodeType: any): Observable<boolean>;
    close(): void;
    private openDialog;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentTypePropertiesService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentTypePropertiesService>;
}

/*!
 * @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.
 */

declare class IndifferentConfigService implements ContentMetadataConfig {
    isGroupAllowed(): boolean;
    reorganiseByConfig(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[];
    filterExcludedPreset(propertyGroups: OrganisedPropertyGroup[]): OrganisedPropertyGroup[];
    appendAllPreset(): OrganisedPropertyGroup[];
    isIncludeAllEnabled(): boolean;
}

/*!
 * @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.
 */

declare class LayoutOrientedConfigService implements ContentMetadataConfig {
    private readonly config;
    constructor(config: any);
    isGroupAllowed(groupName: string): boolean;
    reorganiseByConfig(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[];
    appendAllPreset(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[];
    filterExcludedPreset(propertyGroups: OrganisedPropertyGroup[]): OrganisedPropertyGroup[];
    isIncludeAllEnabled(): any;
    private setEditableProperty;
    private setPropertyTitle;
    private flattenItems;
    private getMatchingGroups;
}

/*!
 * @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.
 */

declare class AspectOrientedConfigService implements ContentMetadataConfig {
    private readonly config;
    constructor(config: any);
    isGroupAllowed(groupName: string): boolean;
    reorganiseByConfig(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[];
    appendAllPreset(propertyGroups: PropertyGroupContainer): OrganisedPropertyGroup[];
    private setReadOnlyProperty;
    private isPropertyReadOnly;
    private isAspectReadOnly;
    filterExcludedPreset(propertyGroups: OrganisedPropertyGroup[]): OrganisedPropertyGroup[];
    isIncludeAllEnabled(): any;
    private getOrganisedPropertyGroup;
}

declare const CONTENT_METADATA_DIRECTIVES: readonly [typeof ContentMetadataComponent, typeof ContentMetadataCardComponent, typeof ContentMetadataHeaderComponent];
/** @deprecated use `...CONTENT_METADATA_DIRECTIVES` instead */
declare class ContentMetadataModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentMetadataModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ContentMetadataModule, never, [typeof ContentMetadataComponent, typeof ContentMetadataCardComponent, typeof ContentMetadataHeaderComponent], [typeof ContentMetadataComponent, typeof ContentMetadataCardComponent, typeof ContentMetadataHeaderComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ContentMetadataModule>;
}

/*!
 * @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.
 */

declare class PermissionDisplayModel implements PermissionElement {
    authorityId?: string;
    authorityDisplayName?: string;
    name?: string;
    accessStatus?: 'ALLOWED' | 'DENIED' | string;
    isInherited: boolean;
    icon: string;
    readonly?: boolean;
    constructor(obj?: any);
}

/*!
 * @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.
 */
interface RoleModel {
    label: string;
    role: string;
}

/*!
 * @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.
 */
declare class EcmCompanyModel {
    organization: string;
    address1: string;
    address2: string;
    address3: string;
    postcode: string;
    telephone: string;
    fax: string;
    email: string;
}

/*!
 * @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.
 */

declare class EcmUserModel {
    id: string;
    firstName: string;
    lastName?: string;
    displayName?: string;
    description?: string;
    avatarId?: string;
    email: string;
    skypeId?: string;
    googleId?: string;
    instantMessageId?: string;
    jobTitle?: string;
    location?: string;
    company: EcmCompanyModel;
    mobile?: string;
    telephone?: string;
    statusUpdatedAt?: Date;
    userStatus?: string;
    enabled: boolean;
    emailNotificationsEnabled?: boolean;
    aspectNames?: string[];
    properties?: {
        [key: string]: string;
    };
    capabilities?: Capabilities;
    constructor(obj?: any);
    isAdmin(): boolean;
}

/*!
 * @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.
 */

interface NodePermissionsModel {
    node: Node;
    roles: RoleModel[];
    inheritedPermissions: PermissionDisplayModel[];
    localPermissions: PermissionDisplayModel[];
}
declare class MemberModel {
    id: string;
    role: string;
    accessStatus: 'ALLOWED' | 'DENIED' | string;
    entry: {
        person?: EcmUserModel;
        group?: Group;
    };
    readonly: boolean;
    constructor(input?: any);
    static parseFromSearchResult({ entry }: NodeEntry): MemberModel;
    toPermissionElement(): PermissionElement;
}

declare class PermissionListService {
    private readonly nodeService;
    private readonly nodePermissionService;
    private readonly nodePermissionDialogService;
    private readonly contentService;
    private readonly notificationService;
    updated: EventEmitter<PermissionDisplayModel>;
    errored: EventEmitter<PermissionDisplayModel>;
    loading$: BehaviorSubject<boolean>;
    error$: Subject<boolean>;
    nodeWithRoles$: Subject<{
        node: Node;
        roles: RoleModel[];
    }>;
    data$: Observable<NodePermissionsModel>;
    private node;
    private roles;
    fetchPermission(nodeId: string): void;
    toggleInherited(change: MatSlideToggleChange): void;
    updateNodePermissionByDialog(): void;
    deletePermissions(permissions: PermissionElement[]): void;
    updateRole(role: string, permission: PermissionDisplayModel): void;
    bulkRoleUpdate(role: string): void;
    deletePermission(permission: PermissionDisplayModel): void;
    private buildUpdatedPermission;
    private reloadNode;
    getManagerAuthority(node: Node): string;
    updateReadOnlyPermission(node: Node, permissions: PermissionDisplayModel[]): PermissionDisplayModel[];
    canUpdateThePermission(node: Node, permission: PermissionElement): boolean;
    private isGroup;
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionListService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PermissionListService>;
}

/*!
 * @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.
 */

declare class PermissionListComponent implements OnInit {
    readonly permissionList: PermissionListService;
    private readonly contentService;
    /** ID of the node whose permissions you want to show. */
    nodeId: string;
    /** Emitted when the permission is updated. */
    update: EventEmitter<PermissionElement>;
    /** Emitted when an error occurs. */
    error: EventEmitter<any>;
    selectedPermissions: PermissionDisplayModel[];
    private _updatePermissionsAllowed;
    private readonly destroyRef;
    get updatePermissionsAllowed(): boolean;
    constructor();
    ngOnInit(): void;
    openAddPermissionDialog(): void;
    onSelect(selections: ObjectDataRow[]): void;
    deleteSelection(): void;
    updatePermission({ role, permission }: {
        role: any;
        permission: any;
    }): void;
    deletePermission(permission: PermissionDisplayModel): void;
    updateAllPermission(role: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PermissionListComponent, "adf-permission-list", never, { "nodeId": { "alias": "nodeId"; "required": true; }; }, { "update": "update"; "error": "error"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class InheritPermissionDirective {
    private readonly nodeService;
    private readonly contentService;
    /** ID of the node to add/remove inherited permissions. */
    nodeId: string;
    /** Emitted when the node is updated. */
    updated: EventEmitter<Node>;
    /** Emitted when an error occurs. */
    error: EventEmitter<any>;
    onInheritPermissionClicked(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<InheritPermissionDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<InheritPermissionDirective, "button[adf-inherit-permission], mat-button-toggle[adf-inherit-permission]", never, { "nodeId": { "alias": "nodeId"; "required": false; }; }, { "updated": "updated"; "error": "error"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodePermissionDialogService {
    private readonly dialog;
    private readonly nodePermissionService;
    private readonly contentService;
    /**
     * Opens a dialog to add permissions to a node.
     *
     * @param node target node
     * @param roles settable roles for the node
     * @param title Dialog title
     * @returns Node with updated permissions
     */
    openAddPermissionDialog(node: Node, roles: RoleModel[], title?: string): Observable<PermissionElement[]>;
    private openDialog;
    /**
     * Closes the currently-open dialog.
     */
    close(): void;
    /**
     * Opens a dialog to update permissions for a node.
     *
     * @param nodeId ID of the target node
     * @param title Dialog title
     * @returns Node with updated permissions
     */
    updateNodePermissionByDialog(nodeId?: string, title?: string): Observable<Node>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodePermissionDialogService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NodePermissionDialogService>;
}

declare class NodePermissionService {
    private readonly apiService;
    private readonly searchApiService;
    private readonly nodeService;
    private readonly translation;
    readonly groupsApi: GroupsApi;
    /**
     * Gets a list of roles for the current node.
     *
     * @param node The target node
     * @returns Array of strings representing the roles
     */
    getNodeRoles(node: Node): Observable<string[]>;
    /**
     * Get permissions for a given node
     *
     * @param node Node to check permissions for
     * @returns list of permission models
     */
    getNodePermissions(node: Node): PermissionDisplayModel[];
    /**
     * Updates the permission role for a node.
     *
     * @param node Target node
     * @param updatedPermissionRole Permission role to update or add
     * @returns Node with updated permission
     */
    updatePermissionRole(node: Node, updatedPermissionRole: PermissionElement): Observable<Node>;
    /**
     * Update permissions for a node.
     *
     * @param nodeId ID of the target node
     * @param permissionList New permission settings
     * @returns Node with updated permissions
     */
    updateNodePermissions(nodeId: string, permissionList: PermissionElement[]): Observable<Node>;
    /**
     * Updates the locally set permissions for a node.
     *
     * @param node ID of the target node
     * @param permissions Permission settings
     * @returns Node with updated permissions
     */
    updateLocallySetPermissions(node: Node, permissions: PermissionElement[]): Observable<Node>;
    private getDuplicatedPermissions;
    private isEqualPermission;
    /**
     * Removes a permission setting from a node.
     *
     * @param node ID of the target node
     * @param permissionToRemove Permission setting to remove
     * @returns Node with modified permissions
     */
    removePermission(node: Node, permissionToRemove: PermissionElement): Observable<Node>;
    private getGroupMembersBySiteName;
    /**
     * Gets all members related to a group name.
     *
     * @param groupName Name of group to look for members
     * @param opts Extra options supported by JS-API
     * @returns List of members
     */
    getGroupMemberByGroupName(groupName: string, opts?: any): Observable<GroupMemberPaging>;
    private formattedRoleName;
    private buildRetrieveSiteQueryBody;
    getLocalPermissions(node: Node): PermissionDisplayModel[];
    getInheritedPermission(node: Node): PermissionDisplayModel[];
    /**
     * Removes permissions setting from a node.
     *
     * @param node target node with permission
     * @param permissions Permissions to remove
     * @returns Node with modified permissions
     */
    removePermissions(node: Node, permissions: PermissionElement[]): Observable<Node>;
    /**
     * updates permissions setting from a node.
     *
     * @param node target node with permission
     * @param permissions Permissions to update
     * @returns Node with modified permissions
     */
    updatePermissions(node: Node, permissions: PermissionElement[]): Observable<Node>;
    /**
     * Gets all node detail for nodeId along with settable permissions.
     *
     * @param nodeId Id of the node
     * @returns node and it's associated roles { node: Node; roles: RoleModel[] }
     */
    getNodeWithRoles(nodeId: string): Observable<{
        node: Node;
        roles: RoleModel[];
    }>;
    transformNodeToUserPerson(node: Node): {
        person: EcmUserModel;
        group: Group;
    };
    static ɵfac: i0.ɵɵFactoryDeclaration<NodePermissionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NodePermissionService>;
}

/*!
 * @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.
 */

interface AddPermissionDialogData {
    title?: string;
    node: Node;
    roles: RoleModel[];
    confirm: Subject<PermissionElement[]>;
}

declare class AddPermissionPanelComponent {
    search: SearchComponent;
    matSelectionList: MatSelectionList;
    /** Emitted when a permission list item is selected. */
    select: EventEmitter<NodeEntry[]>;
    searchInput: UntypedFormControl;
    searchedWord: string;
    debounceSearch: number;
    selectedItems: NodeEntry[];
    EVERYONE: NodeEntry;
    constructor();
    onSelectionChange(): void;
    clearSearch(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddPermissionPanelComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddPermissionPanelComponent, "adf-add-permission-panel", never, {}, { "select": "select"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class AddPermissionComponent implements OnInit {
    private readonly nodePermissionService;
    private readonly contentService;
    /** ID of the target node. */
    nodeId: string;
    /** Emitted when the node is updated successfully. */
    success: EventEmitter<Node>;
    /** Emitted when an error occurs during the update. */
    error: EventEmitter<any>;
    selectedItems: NodeEntry[];
    currentNode: Node;
    currentNodeRoles: RoleModel[];
    ngOnInit(): void;
    onSelect(selection: NodeEntry[]): void;
    isAddEnabled(): boolean;
    applySelection(): void;
    private transformNodeToPermissionElement;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddPermissionComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddPermissionComponent, "adf-add-permission", never, { "nodeId": { "alias": "nodeId"; "required": true; }; }, { "success": "success"; "error": "error"; }, never, never, true, never>;
}

declare class AddPermissionDialogComponent {
    data: AddPermissionDialogData;
    private readonly dialogRef;
    isSearchActive: boolean;
    selectedMembers: MemberModel[];
    private readonly existingMembers;
    currentSelection: NodeEntry[];
    constructor();
    onSelect(items: NodeEntry[]): void;
    onAddClicked(): void;
    onSearchAddClicked(): void;
    canCloseDialog(): void;
    enableSearch(): void;
    disableSearch(): void;
    onBulkUpdate(role: string): void;
    onMemberDelete({ id }: MemberModel): void;
    onMemberUpdate(role: string, member: MemberModel): void;
    isValid(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<AddPermissionDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AddPermissionDialogComponent, "adf-add-permission-dialog", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare const SEARCH_QUERY_TOKEN: InjectionToken<QueryProvider>;
interface QueryProvider {
    query: string;
}
declare class SearchPermissionConfigurationService implements SearchConfigurationInterface {
    private readonly queryProvider;
    generateQueryBody(searchTerm: string, maxResults: number, skipCount: number): SearchRequest;
    private getQuery;
    static ɵfac: i0.ɵɵFactoryDeclaration<SearchPermissionConfigurationService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SearchPermissionConfigurationService>;
}

/*!
 * @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.
 */

declare class UserIconColumnComponent implements OnInit {
    private readonly nodePermissionService;
    context: any;
    node: NodeEntry;
    selected: boolean;
    displayText$: BehaviorSubject<Group | User>;
    group: boolean;
    get isSelected(): boolean;
    ngOnInit(): void;
    private isGroup;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserIconColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UserIconColumnComponent, "adf-user-icon-column", never, { "context": { "alias": "context"; "required": false; }; "node": { "alias": "node"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class UserNameColumnComponent implements OnInit {
    private readonly nodePermissionService;
    context: any;
    node: NodeEntry;
    displayText$: BehaviorSubject<string>;
    subTitleText$: BehaviorSubject<string>;
    ngOnInit(): void;
    private updatePerson;
    private updateGroup;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserNameColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UserNameColumnComponent, "adf-user-name-column", never, { "context": { "alias": "context"; "required": false; }; "node": { "alias": "node"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

interface RoleModelOption {
    label: string;
    role: string;
}
declare class UserRoleColumnComponent implements OnChanges {
    roles: RoleModel[];
    value: string;
    readonly: boolean;
    placeholder: string;
    roleChanged: EventEmitter<string>;
    i18nValue: string;
    options: RoleModelOption[];
    onRoleChanged(newRole: string): void;
    private i18nRoleValue;
    ngOnChanges(changes: SimpleChanges): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<UserRoleColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<UserRoleColumnComponent, "adf-user-role-column", never, { "roles": { "alias": "roles"; "required": false; }; "value": { "alias": "value"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; }, { "roleChanged": "roleChanged"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodePathColumnComponent implements OnInit {
    node: Node;
    displayText$: BehaviorSubject<string>;
    ngOnInit(): void;
    protected updateValue(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodePathColumnComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NodePathColumnComponent, "adf-node-path-column", never, { "node": { "alias": "node"; "required": false; }; }, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class PermissionContainerComponent implements OnChanges {
    node: Node;
    permissions: PermissionDisplayModel[];
    roles: RoleModel[];
    isReadOnly: boolean;
    showLocation: boolean;
    selectionMode: string;
    /** Emitted when the permission is updated. */
    update: EventEmitter<{
        role: string;
        permission: PermissionDisplayModel;
    }>;
    updateAll: EventEmitter<string>;
    /** Emitted when the permission is updated. */
    delete: EventEmitter<PermissionDisplayModel>;
    /** Emitted when an error occurs. */
    error: EventEmitter<any>;
    bulkSelectionRole: string;
    ngOnChanges(): void;
    updateRole(role: string, permission: PermissionDisplayModel): void;
    bulkRoleUpdate(role: string): void;
    removePermission(event: Event, permissionRow: PermissionDisplayModel): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionContainerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PermissionContainerComponent, "adf-permission-container", never, { "node": { "alias": "node"; "required": true; }; "permissions": { "alias": "permissions"; "required": false; }; "roles": { "alias": "roles"; "required": false; }; "isReadOnly": { "alias": "isReadOnly"; "required": false; }; "showLocation": { "alias": "showLocation"; "required": false; }; "selectionMode": { "alias": "selectionMode"; "required": false; }; }, { "update": "update"; "updateAll": "updateAll"; "delete": "delete"; "error": "error"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class PopOverDirective implements OnInit, OnDestroy, AfterViewInit {
    private readonly element;
    private readonly overlay;
    private readonly vcr;
    private readonly focusTrapFactory;
    get open(): boolean;
    popOver: TemplateRef<any>;
    target: HTMLElement;
    panelClass: string;
    autofocusedElementSelector: string;
    private _open;
    private overlayRef;
    private focusTrap;
    private readonly destroyRef;
    ngOnInit(): void;
    ngAfterViewInit(): void;
    ngOnDestroy(): void;
    private createOverlay;
    private toggleOverlay;
    private attachOverlay;
    private detachOverlay;
    private preventDefaultForEnter;
    static ɵfac: i0.ɵɵFactoryDeclaration<PopOverDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<PopOverDirective, "[adf-pop-over]", ["adfPopOver"], { "popOver": { "alias": "adf-pop-over"; "required": false; }; "target": { "alias": "target"; "required": false; }; "panelClass": { "alias": "panelClass"; "required": false; }; "autofocusedElementSelector": { "alias": "autofocusedElementSelector"; "required": false; }; }, {}, never, never, true, never>;
}

declare const CONTENT_PERMISSION_MANAGER_DIRECTIVES: readonly [typeof AddPermissionPanelComponent, typeof AddPermissionComponent, typeof AddPermissionDialogComponent, typeof NodePathColumnComponent, typeof PermissionContainerComponent, typeof PermissionListComponent, typeof UserNameColumnComponent, typeof UserIconColumnComponent, typeof UserRoleColumnComponent, typeof InheritPermissionDirective, typeof PopOverDirective];
/** @deprecated use `...CONTENT_PERMISSION_MANAGER_DIRECTIVES` or import the standalone components directly */
declare class PermissionManagerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<PermissionManagerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<PermissionManagerModule, never, [typeof AddPermissionPanelComponent, typeof AddPermissionComponent, typeof AddPermissionDialogComponent, typeof NodePathColumnComponent, typeof PermissionContainerComponent, typeof PermissionListComponent, typeof UserNameColumnComponent, typeof UserIconColumnComponent, typeof UserRoleColumnComponent, typeof InheritPermissionDirective, typeof PopOverDirective], [typeof AddPermissionPanelComponent, typeof AddPermissionComponent, typeof AddPermissionDialogComponent, typeof NodePathColumnComponent, typeof PermissionContainerComponent, typeof PermissionListComponent, typeof UserNameColumnComponent, typeof UserIconColumnComponent, typeof UserRoleColumnComponent, typeof InheritPermissionDirective, typeof PopOverDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<PermissionManagerModule>;
}

/*!
 * @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.
 */

interface ContentNodeShareSettings {
    baseShareUrl: string;
    node: NodeEntry;
}

/*!
 * @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.
 */

interface SharedDialogFormProps {
    sharedUrl: FormControl<string>;
    time: FormControl<Date>;
}
declare class ShareDialogComponent implements OnInit {
    private readonly sharedLinksApiService;
    private readonly dialogRef;
    private readonly dialog;
    private readonly contentService;
    private readonly renditionService;
    data: ContentNodeShareSettings;
    private readonly minDateValidator;
    minDate: Date;
    sharedId: string;
    fileName: string;
    baseShareUrl: string;
    isFileShared: boolean;
    isDisabled: boolean;
    isLinkWithExpiryDate: boolean;
    form: FormGroup<SharedDialogFormProps>;
    isExpiryDateToggleChecked: boolean;
    slideToggleExpirationDate: any;
    ngOnInit(): void;
    onTimeChanged(): void;
    get time(): FormControl<Date>;
    onSlideShareChange(event: MatSlideToggleChange): void;
    get canUpdate(): boolean;
    onToggleExpirationDate(slideToggle: MatSlideToggleChange): void;
    onDatePickerClosed(): void;
    preventIncorrectCharacters(e: KeyboardEvent): boolean;
    private openConfirmationDialog;
    private createSharedLinks;
    deleteSharedLink(sharedId: string, dialogOpenFlag?: boolean): void;
    private handleError;
    private updateForm;
    private updateNode;
    private sharedLinkWithExpirySettings;
    private updateEntryExpiryDate;
    static ɵfac: i0.ɵɵFactoryDeclaration<ShareDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ShareDialogComponent, "adf-share-dialog", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodeSharedDirective implements OnChanges {
    private readonly dialog;
    private readonly zone;
    private readonly alfrescoApiService;
    isFile: boolean;
    isShared: boolean;
    /** Node to share. */
    node: NodeEntry;
    /** Prefix to add to the generated link. */
    baseShareUrl: string;
    readonly nodesApi: NodesApi;
    private readonly destroyRef;
    shareNode(nodeEntry: NodeEntry): void;
    private getNodeInfo;
    private openShareLinkDialog;
    ngOnChanges(): void;
    onClick(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeSharedDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<NodeSharedDirective, "[adf-share]", ["adfShare"], { "node": { "alias": "adf-share"; "required": false; }; "baseShareUrl": { "alias": "baseShareUrl"; "required": false; }; }, {}, never, never, true, never>;
}

declare class SharedLinksApiService {
    private readonly apiService;
    private readonly preferences;
    error: Subject<{
        statusCode: number;
        message: string;
    }>;
    readonly sharedLinksApi: SharedlinksApi;
    /**
     * Gets shared links available to the current user.
     *
     * @param options Options supported by JS-API
     * @returns List of shared links
     */
    getSharedLinks(options?: any): Observable<NodePaging>;
    /**
     * Creates a shared link available to the current user.
     *
     * @param nodeId ID of the node to link to
     * @param sharedLinkWithExpirySettings shared link with nodeId and expiryDate
     * @param options Options supported by JS-API
     * @returns The shared link just created
     */
    createSharedLinks(nodeId: string, sharedLinkWithExpirySettings?: SharedLinkBodyCreate, options?: any): Observable<SharedLinkEntry>;
    /**
     * Deletes a shared link.
     *
     * @param sharedId ID of the link to delete
     * @returns Null response notifying when the operation is complete
     */
    deleteSharedLink(sharedId: string): Observable<any | Error>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SharedLinksApiService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SharedLinksApiService>;
}

declare const CONTENT_NODE_SHARE_DIRECTIVES: readonly [typeof ShareDialogComponent, typeof NodeSharedDirective];
/** @deprecated use `...CONTENT_NODE_SHARE_DIRECTIVES` or import each directive individually */
declare class ContentNodeShareModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentNodeShareModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ContentNodeShareModule, never, [typeof ShareDialogComponent, typeof NodeSharedDirective], [typeof ShareDialogComponent, typeof NodeSharedDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ContentNodeShareModule>;
}

/*!
 * @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.
 */

declare class TreeBaseNode {
    name: string;
    nodeId: string;
    level: number;
    expandable: boolean;
    node: NodeEntry;
    constructor(nodeEntry: NodeEntry, level?: number, expandable?: boolean);
}

declare class TreeViewDataSource {
    private readonly treeControl;
    private readonly treeViewService;
    treeNodes: TreeBaseNode[];
    dataChange: BehaviorSubject<TreeBaseNode[]>;
    childrenSubscription: any;
    changeSubscription: any;
    get data(): TreeBaseNode[];
    set data(value: TreeBaseNode[]);
    constructor();
    connect(collectionViewer: CollectionViewer): Observable<TreeBaseNode[]>;
    disconnect(): void;
    private expandTreeNodes;
    private reduceTreeNodes;
    private expandNode;
    toggleNode(node: TreeBaseNode): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeViewDataSource, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TreeViewDataSource>;
}

/*!
 * @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.
 */

declare class TreeViewComponent implements OnChanges {
    private readonly treeViewService;
    private readonly injector;
    /** Identifier of the node to display. */
    nodeId: string;
    /** Emitted when a node in the tree view is clicked. */
    nodeClicked: EventEmitter<NodeEntry>;
    /** Emitted when an invalid node id is given. */
    error: EventEmitter<any>;
    treeControl: FlatTreeControl<TreeBaseNode>;
    dataSource: TreeViewDataSource;
    constructor();
    ngOnChanges(changes: SimpleChanges): void;
    onNodeClicked(node: NodeEntry): void;
    getLevel: (node: TreeBaseNode) => number;
    isExpandable: (node: TreeBaseNode) => boolean;
    hasChild: (_: number, nodeData: TreeBaseNode) => boolean;
    private loadTreeNode;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeViewComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TreeViewComponent, "adf-tree-view-list", never, { "nodeId": { "alias": "nodeId"; "required": true; }; }, { "nodeClicked": "nodeClicked"; "error": "error"; }, never, never, true, never>;
}

/** @deprecated use `TreeViewComponent` instead */
declare class TreeViewModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeViewModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TreeViewModule, never, [typeof TreeViewComponent], [typeof TreeViewComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TreeViewModule>;
}

declare class TreeViewService {
    private readonly nodeApi;
    getTreeNodes(nodeId: string): Observable<TreeBaseNode[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeViewService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TreeViewService>;
}

declare class GroupService {
    private readonly alfrescoApiService;
    readonly groupsApi: GroupsApi;
    listAllGroupMembershipsForPerson(personId: string, opts?: any, accumulator?: any[]): Promise<GroupEntry[]>;
    /**
     * Returns group for specified id.
     *
     * @param id id of group to return.
     * @param opts additional query parameters
     * @returns Observable<GroupEntry> group for specified id.
     */
    getGroup(id: string, opts?: ContentIncludeQuery): Observable<GroupEntry>;
    /**
     * Updates specified group.
     *
     * @param group group to update.
     * @param opts additional query parameters
     * @returns Observable<GroupEntry> updated group.
     */
    updateGroup(group: Group, opts?: ContentIncludeQuery): Observable<GroupEntry>;
    static ɵfac: i0.ɵɵFactoryDeclaration<GroupService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<GroupService>;
}

/*!
 * @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.
 */

declare class AspectListComponent implements OnInit {
    private readonly aspectListService;
    private readonly nodeApiService;
    /** Node Id of the node that we want to update */
    nodeId: string;
    /** List of aspects' ids which should not be displayed. */
    excludedAspects?: string[];
    /** Emitted every time the user select a new aspect */
    valueChanged: EventEmitter<string[]>;
    /** Emitted every time the number of selected aspects changes */
    updateCounter: EventEmitter<number>;
    propertyColumns: string[];
    aspects$: Observable<AspectEntry[]>;
    nodeAspects: string[];
    nodeAspectStatus: string[];
    notDisplayedAspects: string[];
    hasEqualAspect: boolean;
    isPanelOpen: boolean[];
    private readonly destroyRef;
    private customAspectsLoaded;
    private standardAspectsLoaded;
    private hasMoreAspects;
    ngOnInit(): void;
    onCheckBoxClick(event: Event): void;
    onChange(change: MatCheckboxChange, prefixedName: string): void;
    reset(): void;
    clear(): void;
    getId(aspect: any): string;
    getTitle(aspect: any): string;
    private updateEqualityOfAspectList;
    private loadAspects;
    static ɵfac: i0.ɵɵFactoryDeclaration<AspectListComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AspectListComponent, "adf-aspect-list", never, { "nodeId": { "alias": "nodeId"; "required": true; }; "excludedAspects": { "alias": "excludedAspects"; "required": false; }; }, { "valueChanged": "valueChanged"; "updateCounter": "updateCounter"; }, never, never, true, never>;
}

/*!
 * @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.
 */

interface AspectListDialogComponentData {
    title: string;
    description: string;
    overTableMessage: string;
    select: Subject<string[]>;
    nodeId?: string;
    excludedAspects?: string[];
}

/*!
 * @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.
 */

declare class AspectListDialogComponent implements OnInit {
    private readonly dialog;
    data: AspectListDialogComponentData;
    title: string;
    description: string;
    currentNodeId: string;
    overTableMessage: string;
    counter: number;
    currentAspectSelection: string[];
    constructor();
    ngOnInit(): void;
    onValueChanged(aspectList: string[]): void;
    onUpdateCounter(count: number): void;
    close(): void;
    onCancel(): void;
    onApply(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AspectListDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AspectListDialogComponent, "adf-aspect-list-dialog", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

interface CustomAspectPaging {
    standardAspectPaging: AspectPaging;
    customAspectPaging: AspectPaging;
}

declare const StandardAspectsWhere = "(modelId in ('cm:contentmodel', 'emailserver:emailserverModel', 'smf:smartFolder', 'app:applicationmodel' ))";
declare const CustomAspectsWhere = "(not namespaceUri matches('http://www.alfresco.*'))";
declare class AspectListService {
    private readonly alfrescoApiService;
    private readonly appConfigService;
    readonly aspectsApi: AspectsApi;
    getAllAspects(standardOpts?: ListAspectsOpts, customOpts?: ListAspectsOpts): Observable<CustomAspectPaging>;
    getAspects(whiteList: string[], opts?: ListAspectsOpts): Observable<AspectPaging>;
    private filterAspectByConfig;
    getVisibleAspects(): string[];
    static ɵfac: i0.ɵɵFactoryDeclaration<AspectListService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AspectListService>;
}

declare class NodeAspectService {
    private readonly nodesApiService;
    private readonly dialogAspectListService;
    private readonly cardViewContentUpdateService;
    private readonly tagService;
    updateNodeAspects(nodeId: string, selectorAutoFocusedOnClose?: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeAspectService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NodeAspectService>;
}

declare class DialogAspectListService {
    private readonly dialog;
    private readonly overlayContainer;
    private readonly tagService;
    private readonly categoryService;
    openAspectListDialog(nodeId?: string, selectorAutoFocusedOnClose?: string): Observable<string[]>;
    private openDialog;
    close(): void;
    private focusOnClose;
    static ɵfac: i0.ɵɵFactoryDeclaration<DialogAspectListService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<DialogAspectListService>;
}

declare const ASPECT_LIST_DIRECTIVES: readonly [typeof AspectListComponent, typeof AspectListDialogComponent];
/** @deprecated use `...ASPECT_LIST_DIRECTIVES` or import the individual components */
declare class AspectListModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AspectListModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AspectListModule, never, [typeof AspectListComponent, typeof AspectListDialogComponent], [typeof AspectListComponent, typeof AspectListDialogComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AspectListModule>;
}

/*!
 * @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.
 */

declare class ContentTypeService {
    private readonly alfrescoApiService;
    readonly typesApi: TypesApi;
    getContentTypeByPrefix(prefixedType: string): Observable<TypeEntry>;
    getContentTypeChildren(nodeType: string): Observable<TypeEntry[]>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentTypeService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<ContentTypeService>;
}

/*!
 * @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.
 */

interface ContentTypeDialogComponentData {
    title: string;
    description: string;
    confirmMessage: string;
    select: Subject<boolean>;
    nodeType?: string;
}

/*!
 * @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.
 */

declare class ContentTypeDialogComponent implements OnInit {
    private readonly dialog;
    data: ContentTypeDialogComponentData;
    private readonly contentTypeService;
    title: string;
    description: string;
    nodeType: string;
    confirmMessage: string;
    currentContentType: TypeEntry;
    typeProperties: any[];
    propertyColumns: string[];
    constructor();
    ngOnInit(): void;
    close(): void;
    onCancel(): void;
    onApply(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentTypeDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<ContentTypeDialogComponent, "adf-content-type-dialog", never, {}, {}, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodeCommentsComponent {
    /** nodeId of the document that has comments */
    nodeId: string;
    /** make the comments component readOnly */
    readOnly: boolean;
    /** Emits when a new comment is added */
    commentAdded: EventEmitter<CommentModel>;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeCommentsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NodeCommentsComponent, "adf-node-comments", never, { "nodeId": { "alias": "nodeId"; "required": true; }; "readOnly": { "alias": "readOnly"; "required": false; }; }, { "commentAdded": "commentAdded"; }, never, never, true, never>;
}

/*!
 * @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.
 */

declare class NodeCommentsService implements CommentsService {
    private readonly apiService;
    readonly commentsApi: CommentsApi;
    readonly peopleApi: PeopleApi;
    /**
     * Gets all comments that have been added to a task.
     *
     * @param id ID of the target task
     * @returns Details for each comment
     */
    get(id: string): Observable<CommentModel[]>;
    /**
     * Adds a comment to a task.
     *
     * @param id ID of the target task
     * @param message Text for the comment
     * @returns Details about the comment
     */
    add(id: string, message: string): Observable<CommentModel>;
    private addToComments;
    private newCommentModel;
    /**
     * Gets the avatar image URL for a given user ID.
     *
     * @param userId ID of the user
     * @returns The URL of the user's avatar image
     */
    getUserImage(userId: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeCommentsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NodeCommentsService>;
}

/** @deprecated import NodeCommentsComponent standalone component directly */
declare class NodeCommentsModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NodeCommentsModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NodeCommentsModule, never, [typeof NodeCommentsComponent], [typeof NodeCommentsComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NodeCommentsModule>;
}

/*!
 * @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.
 */

interface NewVersionUploaderDialogData {
    title?: string;
    node: Node;
    file?: File;
    currentVersion?: Version;
    showVersionsOnly?: boolean;
    showComments?: boolean;
    showActions?: boolean;
    allowDownload?: boolean;
    allowViewVersions?: boolean;
    allowVersionDelete?: boolean;
}
type NewVersionUploaderData = VersionManagerUploadData | ViewVersion | RefreshData;
declare const NewVersionUploaderDataAction: {
    readonly refresh: "refresh";
    readonly upload: "upload";
    readonly view: "view";
};
type NewVersionUploaderDataAction = (typeof NewVersionUploaderDataAction)[keyof typeof NewVersionUploaderDataAction];
interface BaseData {
    action: NewVersionUploaderDataAction;
}
interface VersionManagerUploadData extends BaseData {
    action: 'upload';
    newVersion: NodeEntityEvent;
    currentVersion: NodeChildAssociation;
}
interface ViewVersion extends BaseData {
    action: 'view';
    versionId: string;
}
interface RefreshData extends BaseData {
    action: 'refresh';
    node: Node;
}

/*!
 * @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.
 */

declare class NewVersionUploaderDialogComponent implements OnInit {
    data: NewVersionUploaderDialogData;
    private readonly dialogRef;
    /**
     * Dialog title to show into the header.
     * If data.title is not provided, a default title is set
     */
    title: string;
    /** Emitted when an action is done. */
    dialogAction: EventEmitter<NewVersionUploaderData>;
    /** Emitted when an error occurs. */
    uploadError: EventEmitter<any>;
    ngOnInit(): void;
    private setDialogTitle;
    handleUpload(newFileVersion: any): void;
    handleCancel(): void;
    onUploadError(error: any): void;
    onViewingVersion(versionId: string): void;
    refresh(node: Node): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<NewVersionUploaderDialogComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<NewVersionUploaderDialogComponent, "adf-new-version-uploader-dialog", never, {}, { "dialogAction": "dialogAction"; "uploadError": "uploadError"; }, never, never, true, never>;
}

/** @deprecated use `NewVersionUploaderDialogComponent` standalone component instead */
declare class NewVersionUploaderModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<NewVersionUploaderModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<NewVersionUploaderModule, never, [typeof NewVersionUploaderDialogComponent], [typeof NewVersionUploaderDialogComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<NewVersionUploaderModule>;
}

declare class NewVersionUploaderService {
    private readonly apiService;
    private readonly dialog;
    private readonly overlayContainer;
    readonly versionsApi: VersionsApi;
    /**
     * Open a dialog NewVersionUploaderDialogComponent to display:
     * - a side by side comparison between the current target node (type, name, icon) and the new file that should update it's version
     * - the new version's minor/major changes and the optional comment of a node and the ability to upload a new file version
     * - if data.showVersionsOnly is set to true, displays the version history of a node, with the ability to restore, delete and view version of the current node
     *
     * @param data data to pass to MatDialog
     * @param config allow to override default MatDialogConfig
     * @param selectorAutoFocusedOnClose element's selector which should be autofocused after closing modal
     * @returns an Observable represents the triggered dialog action or an error in case of an error condition
     */
    openUploadNewVersionDialog(data: NewVersionUploaderDialogData, config?: MatDialogConfig, selectorAutoFocusedOnClose?: string): Observable<NewVersionUploaderData>;
    private composePanelClass;
    private static focusOnClose;
    static ɵfac: i0.ɵɵFactoryDeclaration<NewVersionUploaderService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NewVersionUploaderService>;
}

declare class VersionCompatibilityDirective {
    private readonly templateRef;
    private readonly viewContainer;
    private readonly versionCompatibilityService;
    /** Minimum version required for component to work correctly . */
    set version(requiredVersion: string);
    private validateAcsVersion;
    static ɵfac: i0.ɵɵFactoryDeclaration<VersionCompatibilityDirective, never>;
    static ɵdir: i0.ɵɵDirectiveDeclaration<VersionCompatibilityDirective, "[adf-acs-version]", never, { "version": { "alias": "adf-acs-version"; "required": false; }; }, {}, never, never, true, never>;
}

declare class VersionCompatibilityService {
    private readonly discoveryApiService;
    private acsVersion;
    acsVersionInitialized$: ReplaySubject<void>;
    constructor();
    private initializeAcsVersion;
    getAcsVersion(): VersionInfo;
    isVersionSupported(requiredVersion: string): boolean;
    private parseVersion;
    static ɵfac: i0.ɵɵFactoryDeclaration<VersionCompatibilityService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<VersionCompatibilityService>;
}

/** @deprecated use `VersionCompatibilityDirective` instead */
declare class VersionCompatibilityModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<VersionCompatibilityModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<VersionCompatibilityModule, never, [typeof VersionCompatibilityDirective], [typeof VersionCompatibilityDirective]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<VersionCompatibilityModule>;
}

declare class FavoritesApiService {
    private readonly apiService;
    private readonly preferences;
    readonly favoritesApi: FavoritesApi;
    static remapEntry({ entry }: any): any;
    remapFavoritesData(data?: FavoritePaging): NodePaging;
    remapFavoriteEntries(entries: any[]): any[];
    /**
     * Gets the favorites for a user.
     *
     * @param personId ID of the user
     * @param options Options supported by JS-API
     * @returns List of favorites
     */
    getFavorites(personId: string, options?: any): Observable<NodePaging>;
    static ɵfac: i0.ɵɵFactoryDeclaration<FavoritesApiService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<FavoritesApiService>;
}

/*!
 * @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.
 */

declare class CardViewContentUpdateService {
    private readonly cardViewUpdateService;
    itemUpdated$: Subject<UpdateNotification>;
    updatedAspect$: Subject<Node>;
    constructor();
    update(property: CardViewBaseItemModel, newValue: any): void;
    updateElement(notification: CardViewBaseItemModel): void;
    updateNodeAspect(node: Node): void;
    private linkVariables;
    private linkItemUpdated;
    static ɵfac: i0.ɵɵFactoryDeclaration<CardViewContentUpdateService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CardViewContentUpdateService>;
}

declare class SitesService {
    private readonly apiService;
    readonly sitesApi: SitesApi;
    /**
     * Create a site
     *
     * @param siteBody SiteBodyCreate to create site
     * @returns site SiteEntry
     */
    createSite(siteBody: SiteBodyCreate): Observable<SiteEntry>;
    /**
     * Gets a list of all sites in the repository.
     *
     * @param opts Options supported by JS-API
     * @returns List of sites
     */
    getSites(opts?: any): Observable<SitePaging>;
    /**
     * Gets the details for a site.
     *
     * @param siteId ID of the target site
     * @param opts Options supported by JS-API
     * @returns Information about the site
     */
    getSite(siteId: string, opts?: any): Observable<SiteEntry | any>;
    /**
     * Deletes a site.
     *
     * @param siteId Site to delete
     * @param permanentFlag True: deletion is permanent; False: site is moved to the trash
     * @returns Null response notifying when the operation is complete
     */
    deleteSite(siteId: string, permanentFlag?: boolean): Observable<any>;
    /**
     * Gets a site's content.
     *
     * @param siteId ID of the target site
     * @returns Site content
     */
    getSiteContent(siteId: string): Observable<SiteEntry | any>;
    /**
     * Gets a list of all a site's members.
     *
     * @param siteId ID of the target site
     * @returns Site members
     */
    getSiteMembers(siteId: string): Observable<SiteEntry | any>;
    /**
     * Gets a list of all a site's members.
     *
     * @param siteId ID of the target site
     * @param opts Optional parameters supported by JS-API
     * @returns Observable<SiteMemberPaging>
     */
    listSiteMemberships(siteId: string, opts: any): Observable<SiteMemberPaging>;
    /**
     * Looks for a site inside the path of a Node and returns its guid if it finds one.
     * (return an empty string if no site is found)
     *
     * @param node Node to look for parent site
     * @returns Site guid
     */
    getSiteNameFromNodePath(node: Node): string;
    /**
     * Gets a list of site membership requests.
     *
     * @param opts Options supported by JS-API
     * @returns Site membership requests
     */
    getSiteMembershipRequests(opts?: any): Observable<SiteMembershipRequestWithPersonPaging>;
    /**
     * Creates a site membership for person **personId** on site **siteId**.
     *
     * @param siteId The identifier of a site
     * @param siteMembershipBodyCreate The person to add and their role
     * @param opts Optional parameters
     * @returns Observable<SiteMemberEntry>
     */
    createSiteMembership(siteId: string, siteMembershipBodyCreate: SiteMembershipBodyCreate, opts?: any): Observable<SiteMemberEntry>;
    /**
     * Update a site membership
     *
     * @param siteId The identifier of a site.
     * @param personId The identifier of a person.
     * @param siteMembershipBodyUpdate The persons new role
     * @param opts Optional parameters
     * @returns Observable<SiteMemberEntry>
     */
    updateSiteMembership(siteId: string, personId: string, siteMembershipBodyUpdate: SiteMembershipBodyUpdate, opts?: any): Observable<SiteMemberEntry>;
    /**
     * Delete a site membership
     *
     * @param siteId The identifier of a site.
     * @param personId The identifier of a person.
     * @returns Null response notifying when the operation is complete
     */
    deleteSiteMembership(siteId: string, personId: string): Observable<void>;
    /**
     * Accept site membership requests.
     *
     * @param siteId The identifier of a site.
     * @param inviteeId The invitee user name.
     * @param opts Options supported by JS-API
     * @returns  Null response notifying when the operation is complete
     */
    approveSiteMembershipRequest(siteId: string, inviteeId: string, opts?: any): Observable<SiteMembershipRequestWithPersonPaging>;
    /**
     * Reject site membership requests.
     *
     * @param siteId The identifier of a site.
     * @param inviteeId The invitee user name.
     * @param opts Options supported by JS-API
     * @returns  Null response notifying when the operation is complete
     */
    rejectSiteMembershipRequest(siteId: string, inviteeId: string, opts?: any): Observable<SiteMembershipRequestWithPersonPaging>;
    /**
     * List group membership for site
     *
     * @param siteId The identifier of a site.
     * @param opts Options supported by JS-API
     * @returns  Observable<SiteGroupPaging>
     */
    listSiteGroups(siteId: string, opts?: any): Observable<SiteGroupPaging>;
    /**
     * Create a site membership for group
     *
     * @param siteId The identifier of a site.
     * @param siteMembershipBodyCreate The Group to add and its role
     * @returns Observable<SiteGroupEntry>
     */
    createSiteGroupMembership(siteId: string, siteMembershipBodyCreate: SiteMembershipBodyCreate): Observable<SiteGroupEntry>;
    /**
     * Get information about site membership of group
     *
     * @param siteId The identifier of a site.
     * @param groupId The authorityId of a group.
     * @returns Observable<SiteGroupEntry>
     */
    getSiteGroupMembership(siteId: string, groupId: string): Observable<SiteGroupEntry>;
    /**
     * Update site membership of group
     *
     * @param siteId The identifier of a site.
     * @param groupId The authorityId of a group.
     * @param siteMembershipBodyUpdate The group new role
     * @returns Observable<SiteGroupEntry>
     */
    updateSiteGroupMembership(siteId: string, groupId: string, siteMembershipBodyUpdate: SiteMembershipBodyUpdate): Observable<SiteGroupEntry>;
    /**
     * Delete a group membership for site
     *
     * @param siteId The identifier of a site.
     * @param groupId The authorityId of a group.
     * @returns Observable<void>
     */
    deleteSiteGroupMembership(siteId: string, groupId: string): Observable<void>;
    static ɵfac: i0.ɵɵFactoryDeclaration<SitesService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SitesService>;
}

declare class RenditionService {
    private readonly apiService;
    private readonly translateService;
    private readonly viewUtilsService;
    static TARGET: string;
    /**
     * Content groups based on categorization of files that can be viewed in the web browser. This
     * implementation or grouping is tied to the definition the ng component: ViewerRenderComponent
     */
    static ContentGroup: {
        IMAGE: string;
        MEDIA: string;
        PDF: string;
        TEXT: string;
    };
    /**
     * The name of the rendition with the media subtitles in the supported format
     */
    static SUBTITLES_RENDITION_NAME: string;
    /**
     * Based on ViewerRenderComponent Implementation, this value is used to determine how many times we try
     * to get the rendition of a file for preview, or printing.
     */
    maxRetries: number;
    /**
     * Timeout used for setInterval.
     */
    private readonly TRY_TIMEOUT;
    private readonly DEFAULT_RENDITION;
    readonly renditionsApi: RenditionsApi;
    readonly contentApi: ContentApi;
    readonly versionsApi: VersionsApi;
    getRenditionUrl(nodeId: string, type: string, renditionExists: boolean): string;
    private waitRendition;
    private wait;
    getRendition(nodeId: string, renditionId: string): Promise<RenditionEntry>;
    getNodeRendition(nodeId: string, versionId?: string): Promise<{
        url: string;
        mimeType: string;
    }>;
    private resolveNodeRendition;
    private requestCreateRendition;
    private findRenditionById;
    private waitNodeRendition;
    private handleNodeRendition;
    generateMediaTracksRendition(nodeId: string): Promise<Track[]>;
    private isRenditionAvailable;
    /**
     * This method takes a url to trigger the print dialog against, and the type of artifact that it
     * is.
     * This URL should be one that can be rendered in the browser, for example PDF, Image, or Text
     *
     * @param url url to print
     * @param type type of the rendition
     */
    printFile(url: string, type: string): void;
    /**
     * Launch the File Print dialog from anywhere other than the preview service, which resolves the
     * rendition of the object that can be printed from a web browser.
     * These are: images, PDF files, or PDF rendition of files.
     * We also force PDF rendition for TEXT type objects, otherwise the default URL is to download.
     * TODO there are different TEXT type objects, (HTML, plaintext, xml, etc. we should determine how these are handled)
     *
     * @param objectId object it
     * @param mimeType mime type
     */
    printFileGeneric(objectId: string, mimeType: string): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<RenditionService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<RenditionService>;
}

/*!
 * @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.
 */
declare class NodeMetadata {
    metadata: any;
    nodeType: string;
    constructor(metadata: any, nodeType: string);
}

declare class NodesApiService {
    private readonly apiService;
    private readonly preferences;
    /**
     * Publish/subscribe to events related to node updates.
     */
    nodeUpdated: Subject<Node>;
    readonly trashcanApi: TrashcanApi;
    readonly nodesApi: NodesApi;
    private getEntryFromEntity;
    /**
     * Gets the stored information about a node.
     *
     * @param nodeId ID of the target node
     * @param options Optional parameters supported by JS-API
     * @returns Node information
     */
    getNode(nodeId: string, options?: any): Observable<Node>;
    /**
     * Gets the items contained in a folder node.
     *
     * @param nodeId ID of the target node
     * @param options Optional parameters supported by JS-API
     * @returns List of child items from the folder
     */
    getNodeChildren(nodeId: string, options?: any): Observable<NodePaging>;
    /**
     * Creates a new document node inside a folder.
     *
     * @param parentNodeId ID of the parent folder node
     * @param nodeBody Data for the new node
     * @param options Optional parameters supported by JS-API
     * @returns Details of the new node
     */
    createNode(parentNodeId: string, nodeBody: any, options?: any): Observable<Node>;
    /**
     * Creates a new folder node inside a parent folder.
     *
     * @param parentNodeId ID of the parent folder node
     * @param nodeBody Data for the new folder
     * @param options Optional parameters supported by JS-API
     * @returns Details of the new folder
     */
    createFolder(parentNodeId: string, nodeBody: any, options?: any): Observable<Node>;
    /**
     * Updates the information about a node.
     *
     * @param nodeId ID of the target node
     * @param nodeBody New data for the node
     * @param options Optional parameters supported by JS-API
     * @returns Updated node information
     */
    updateNode(nodeId: string, nodeBody: any, options?: any): Observable<Node>;
    /**
     * Moves a node to the trashcan.
     *
     * @param nodeId ID of the target node
     * @param options Optional parameters supported by JS-API
     * @returns Empty result that notifies when the deletion is complete
     */
    deleteNode(nodeId: string, options?: any): Observable<any>;
    /**
     * Restores a node previously moved to the trashcan.
     *
     * @param nodeId ID of the node to restore
     * @returns Details of the restored node
     */
    restoreNode(nodeId: string): Observable<Node>;
    /**
     * Get the metadata and the nodeType for a nodeId cleaned by the prefix.
     *
     * @param nodeId ID of the target node
     * @returns Node metadata
     */
    getNodeMetadata(nodeId: string): Observable<NodeMetadata>;
    /**
     * Gets the list of holds assigned to the node.
     *
     * @param nodeId ID of the target node
     * @param options Optional parameters supported by JS-API
     * @param options.includeSource Also include **source** (in addition to **entries**) with folder information on **nodeId**
     * @returns List of assigned holds Observable<Hold[]>
     */
    getNodeAssignedHolds(nodeId: string, options?: {
        includeSource?: boolean;
    } & NodesIncludeQuery & ContentPagingQuery): Observable<NodeAssignedHold[]>;
    /**
     * Gets content for the given node.
     *
     * @param nodeId ID of the target node
     * @returns Content data
     */
    getNodeContent(nodeId: string): Observable<any>;
    /**
     * Create a new Node inside `-root-` folder
     *
     * @param name Node name
     * @param nodeType Node type
     * @param properties Node body properties
     * @param path Path to the node
     * @returns The created node
     */
    createNodeInsideRoot(name: string, nodeType: string, properties: any, path: string): Observable<NodeEntry>;
    /**
     * Create a new Node from form metadata.
     *
     * @param nodeType Node type
     * @param nameSpace Namespace for properties
     * @param data Property data to store in the node under namespace
     * @param path Path to the node
     * @param name Node name
     * @returns The created node
     */
    createNodeMetadata(nodeType: string, nameSpace: any, data: any, path: string, name?: string): Observable<NodeEntry>;
    /**
     * Initiate a new request to calculate folder size.
     *
     * @param nodeId Node Id
     * @returns The job id which can be used to track request status
     */
    initiateFolderSizeCalculation(nodeId: string): Observable<JobIdBodyEntry>;
    /**
     * Gets the size of a folder.
     *
     * @param nodeId Node Id
     * @param jobId Job Id
     * @returns Folder details
     */
    getFolderSizeInfo(nodeId: string, jobId: string): Observable<SizeDetailsEntry>;
    /**
     * Lists parents of a given node.
     *
     * @param nodeId Node ID
     * @param opts Optional parameters
     * @returns List of parent nodes
     */
    listParents(nodeId: string, opts?: {
        where?: string;
        includeSource?: boolean;
    } & NodesIncludeQuery & ContentPagingQuery): Observable<NodeAssociationPaging>;
    private randomNodeName;
    private cleanMetadataFromSemicolon;
    static ɵfac: i0.ɵɵFactoryDeclaration<NodesApiService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<NodesApiService>;
}

interface PeopleContentQueryResponse {
    pagination: Pagination;
    entries: EcmUserModel[];
}
interface PeopleContentSortingModel {
    orderBy: string;
    direction: string;
}
interface PeopleContentQueryRequestModel {
    skipCount?: number;
    maxItems?: number;
    sorting?: PeopleContentSortingModel;
}
declare class PeopleContentService {
    private readonly apiService;
    private readonly contentService;
    private currentUser;
    readonly peopleApi: PeopleApi;
    constructor();
    /**
     * Gets information about a user identified by their username.
     *
     * @param personId ID of the target user
     * @returns User information
     */
    getPerson(personId: string): Observable<EcmUserModel>;
    getCurrentPerson(): Observable<EcmUserModel>;
    /**
     * Gets information about the current user alias -me-
     *
     * @returns User information
     */
    getCurrentUserInfo(): Observable<EcmUserModel>;
    /**
     * Used to know if the current user has the admin capability
     *
     * @returns true or false
     */
    isCurrentUserAdmin(): boolean;
    /**
     * Reset the local current user object
     */
    resetLocalCurrentUser(): void;
    /**
     * Gets a list of people.
     *
     * @param requestQuery maxItems and skipCount parameters supported by JS-API
     * @returns Response containing pagination and list of entries
     */
    listPeople(requestQuery?: PeopleContentQueryRequestModel): Observable<PeopleContentQueryResponse>;
    /**
     * Creates new person.
     *
     * @param newPerson Object containing the new person details.
     * @param opts Optional parameters
     * @returns Created new person
     */
    createPerson(newPerson: PersonBodyCreate, opts?: any): Observable<EcmUserModel>;
    /**
     * Updates the person details
     *
     * @param personId The identifier of a person
     * @param details The person details
     * @param opts Optional parameters
     * @returns Updated person model
     */
    updatePerson(personId: string, details: PersonBodyUpdate, opts?: any): Observable<EcmUserModel>;
    /**
     * Returns a profile image as a URL.
     *
     * @param avatarId Target avatar
     * @returns Image URL
     */
    getUserProfileImage(avatarId: string): string;
    private buildOrderArray;
    static ɵfac: i0.ɵɵFactoryDeclaration<PeopleContentService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<PeopleContentService>;
}

/*!
 * @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.
 */
interface SavedSearch {
    name: string;
    description?: string;
    encodedUrl: string;
    order: number;
}

/*!
 * @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.
 */

/**
 * Contract that describes the public API for saved searches strategy.
 * Implemented by both the new and legacy SavedSearches services so callers
 * can depend on the same shape.
 */
interface SavedSearchStrategy {
    savedSearches$: Observable<SavedSearch[]>;
    init(): void;
    /**
     * Gets a list of saved searches by user.
     *
     * @returns SavedSearch list containing user saved searches
     */
    getSavedSearches(): Observable<SavedSearch[]>;
    /**
     * Saves a new search into state and updates state. If there are less than 5 searches,
     * it will be pushed on first place, if more it will be pushed to 6th place.
     *
     * @param newSaveSearch object { name: string, description: string, encodedUrl: string }
     * @returns NodeEntry
     */
    saveSearch(newSaveSearch: Pick<SavedSearch, 'name' | 'description' | 'encodedUrl'>): Observable<NodeEntry>;
    /**
     * Replace Save Search with new one and also updates the state.
     *
     * @param updatedSavedSearch - updated Save Search
     * @returns NodeEntry
     */
    editSavedSearch(updatedSavedSearch: SavedSearch): Observable<NodeEntry>;
    /**
     * Deletes Save Search and update state.
     *
     * @param deletedSavedSearch - Save Search to delete
     * @returns NodeEntry
     */
    deleteSavedSearch(deletedSavedSearch: SavedSearch): Observable<NodeEntry>;
    /**
     * Reorders saved search place
     *
     * @param previousIndex - previous index of saved search
     * @param currentIndex - new index of saved search
     */
    changeOrder(previousIndex: number, currentIndex: number): void;
}

/*!
 * @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.
 */

interface AlfrescoApiFactory {
    createAlfrescoApi(config: AlfrescoApiConfig): AlfrescoApi;
}

declare abstract class SavedSearchesBaseService implements SavedSearchStrategy {
    private static readonly SAVE_MODE_THRESHOLD;
    protected readonly _savedSearches$: ReplaySubject<SavedSearch[]>;
    readonly savedSearches$: Observable<SavedSearch[]>;
    protected readonly apiService: AlfrescoApiService;
    protected readonly authService: AuthenticationService;
    readonly nodesApi: NodesApi;
    protected abstract fetchAllSavedSearches(): Observable<SavedSearch[]>;
    protected abstract updateSavedSearches(searches: SavedSearch[]): Observable<NodeEntry>;
    init(): void;
    getSavedSearches(): Observable<SavedSearch[]>;
    saveSearch(newSaveSearch: Pick<SavedSearch, 'name' | 'description' | 'encodedUrl'>): Observable<NodeEntry>;
    editSavedSearch(updatedSavedSearch: SavedSearch): Observable<NodeEntry>;
    deleteSavedSearch(deletedSavedSearch: SavedSearch): Observable<NodeEntry>;
    changeOrder(previousIndex: number, currentIndex: number): void;
    protected resetSavedSearchesStream(): void;
    private fetchSavedSearches;
    static ɵfac: i0.ɵɵFactoryDeclaration<SavedSearchesBaseService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SavedSearchesBaseService>;
}

/*!
 * @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.
 */

interface SavedSearchesPreferencesApiService {
    getPreference: (personId: string, preferenceName: string, opts?: ContentFieldsQuery) => Promise<PreferenceEntry> | Observable<PreferenceEntry>;
    updatePreference: (personId: string, preferenceName: string, preferenceValue: string) => Promise<PreferenceEntry> | Observable<PreferenceEntry>;
}
declare const SAVED_SEARCHES_SERVICE_PREFERENCES: InjectionToken<SavedSearchesPreferencesApiService>;
declare class SavedSearchesService extends SavedSearchesBaseService {
    private savedSearchFileNodeId;
    private readonly preferencesService;
    readonly preferencesApi: SavedSearchesPreferencesApiService;
    protected fetchAllSavedSearches(): Observable<SavedSearch[]>;
    protected updateSavedSearches(updatedSavedSearches: SavedSearch[]): Observable<NodeEntry>;
    private getSavedSearchesNodeId;
    private mapFileContentToSavedSearches;
    private getLocalStorageKey;
    private migrateSavedSearches;
    private getSavedSearchesFromPreferenceApi;
    static ɵfac: i0.ɵɵFactoryDeclaration<SavedSearchesService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SavedSearchesService>;
}

/*!
 * @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.
 */

declare class SavedSearchesLegacyService extends SavedSearchesBaseService {
    private savedSearchFileNodeId;
    private currentUserLocalStorageKey;
    private createFileAttempt;
    protected fetchAllSavedSearches(): Observable<SavedSearch[]>;
    protected updateSavedSearches(searches: SavedSearch[]): Observable<NodeEntry>;
    private getSavedSearchesNodeId;
    private createSavedSearchesNode;
    private mapFileContentToSavedSearches;
    private getLocalStorageKey;
    static ɵfac: i0.ɵɵFactoryDeclaration<SavedSearchesLegacyService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SavedSearchesLegacyService>;
}

/*!
 * @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.
 */
declare const TreeNodeType: {
    readonly RegularNode: "RegularNode";
    readonly LoadMoreNode: "LoadMoreNode";
};
type TreeNodeType = (typeof TreeNodeType)[keyof typeof TreeNodeType];
interface TreeNode {
    id: string;
    nodeName: string;
    parentId: string;
    level: number;
    nodeType: TreeNodeType;
    hasChildren: boolean;
    isLoading: boolean;
}

/*!
 * @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.
 */

interface TreeResponse<T extends TreeNode> {
    pagination: PaginationModel;
    entries: T[];
}

declare abstract class TreeService<T extends TreeNode> extends DataSource<T> {
    readonly treeControl: FlatTreeControl<T>;
    treeNodesSource: BehaviorSubject<T[]>;
    get treeNodes(): T[];
    set treeNodes(nodes: T[]);
    constructor();
    abstract getSubNodes(parentNodeId: string, skipCount?: number, maxItems?: number, searchTerm?: string): Observable<TreeResponse<T>>;
    /**
     * Expands node applying subnodes to it.
     *
     * @param nodeToExpand Node to be expanded
     * @param subNodes List of nodes that will be added as children of expanded node
     */
    expandNode(nodeToExpand: T, subNodes: T[]): void;
    /**
     * Collapses a node removing all children from it.
     *
     * @param nodeToCollapse Node to be collapsed
     */
    collapseNode(nodeToCollapse: T): void;
    /**
     * Append more child nodes to already expanded parent node
     *
     * @param nodeToAppend Expanded parent node
     * @param subNodes List of nodes that will be added as children of expanded node
     */
    appendNodes(nodeToAppend: T, subNodes: T[]): void;
    /**
     * Removes provided node from the tree
     *
     * @param node Node to be removed
     */
    removeNode(node: T): void;
    /**
     * Gets children of the node
     *
     * @param parentNode Parent node
     * @returns children of parent node
     */
    getChildren(parentNode: T): T[];
    /**
     * Checks if tree is empty
     *
     * @returns boolean
     */
    isEmpty(): boolean;
    /**
     * Gets parent node of given node. If node with parentNodeId is not found it returns undefined.
     *
     * @param parentNodeId Id of a parent node to be found
     * @returns parent node or undefined when not found
     */
    getParentNode(parentNodeId: string): T | undefined;
    connect(): Observable<T[]>;
    disconnect(): void;
    private collapseInnerNode;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<TreeService<any>>;
}

/*!
 * @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.
 */
interface TreeContextMenuResult<T> {
    row: T;
    contextMenuOption: any;
}

/*!
 * @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.
 */

declare class TreeComponent<T extends TreeNode> implements OnInit, OnDestroy {
    treeService: TreeService<T>;
    private readonly userPreferenceService;
    private readonly destroyRef;
    private readonly translateService;
    private readonly liveAnnouncer;
    /** TemplateRef to provide empty template when no nodes are loaded */
    emptyContentTemplate: TemplateRef<any>;
    /** Variable defining if tree header should be sticky. By default set to false */
    stickyHeader: boolean;
    /** Variable defining if tree nodes should be selectable. By default set to false */
    selectableNodes: boolean;
    /** Tree display name */
    displayName: string;
    /** Load more suffix for load more button */
    loadMoreSuffix: string;
    /** Icon shown when node has children and is collapsed. By default set to chevron_right */
    expandIcon: string;
    /** Icon shown when node is expanded. By default set to expand_more */
    collapseIcon: string;
    /** Emitted when pagination has been changed */
    paginationChanged: EventEmitter<PaginationModel>;
    /** Emitted when any context menu option is selected */
    contextMenuOptionSelected: EventEmitter<TreeContextMenuResult<T>>;
    nodeCheckboxes: QueryList<MatCheckbox>;
    private readonly matTreeNodes;
    private readonly loadingRootSource;
    private _contextMenuSource;
    private _contextMenuOptions;
    private readonly contextMenuOptionsChanged$;
    loadingRoot$: Observable<boolean>;
    treeNodesSelection: SelectionModel<T>;
    set contextMenuSource(contextMenuSource: T);
    /** Array of context menu options which should be displayed for each row. */
    set contextMenuOptions(contextMenuOptions: any[]);
    get contextMenuOptions(): any[];
    ngOnInit(): void;
    ngOnDestroy(): void;
    /**
     * Checks if node is LoadMoreNode node
     *
     * @param _idx (unused)
     * @param node node to be checked
     * @returns `true` if there are more items to load, otherwise `false`
     */
    isLoadMoreNode(_idx: number, node: T): boolean;
    /**
     * Checks if tree is empty
     *
     * @returns boolean
     */
    isEmpty(): boolean;
    /**
     * Returns action icon based on expanded/collapsed node state.
     *
     * @param node node to be checked
     * @returns collapse or expand icon
     */
    expandCollapseIconValue(node: T): string;
    /**
     * Refreshes the tree, root nodes are reloaded, tree selection is cleared.
     *
     * @param skipCount Number of root nodes to skip.
     * @param maxItems Maximum number of nodes returned from Observable.
     * @param searchTerm Specifies if categories should be filtered out by name or not. If not specified then returns categories without filtering.
     */
    refreshTree(skipCount?: number, maxItems?: number, searchTerm?: string): void;
    /**
     * Collapses or expanding the node based on its current state
     *
     * @param node node to be collapsed/expanded
     */
    expandCollapseNode(node: T): void;
    /**
     * Loads more subnode for a given parent node
     *
     * @param node parent node
     */
    loadMoreSubnodes(node: T): void;
    /**
     * When node is selected it selects all its descendants
     *
     * @param node selected node
     */
    onNodeSelected(node: T): void;
    /**
     * Checks if all descendants of a node are selected
     *
     * @param node selected node
     * @returns boolean
     */
    descendantsAllSelected(node: T): boolean;
    /**
     * Checks if some descendants of a node are selected
     *
     * @param node selected node
     * @returns boolean
     */
    descendantsPartiallySelected(node: T): boolean;
    private handleNodeExpanded;
    private handleNodeCollapsed;
    private checkParentsSelection;
    private checkRootNodeSelection;
    private onTreeSelectionChange;
    private isRegularNode;
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeComponent<any>, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TreeComponent<any>, "adf-tree", never, { "emptyContentTemplate": { "alias": "emptyContentTemplate"; "required": false; }; "stickyHeader": { "alias": "stickyHeader"; "required": false; }; "selectableNodes": { "alias": "selectableNodes"; "required": false; }; "displayName": { "alias": "displayName"; "required": false; }; "loadMoreSuffix": { "alias": "loadMoreSuffix"; "required": false; }; "expandIcon": { "alias": "expandIcon"; "required": false; }; "collapseIcon": { "alias": "collapseIcon"; "required": false; }; "contextMenuOptions": { "alias": "contextMenuOptions"; "required": false; }; }, { "paginationChanged": "paginationChanged"; "contextMenuOptionSelected": "contextMenuOptionSelected"; }, never, never, true, never>;
}

/** @deprecated use `TreeComponent` standalone component instead */
declare class TreeModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<TreeModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<TreeModule, never, [typeof TreeComponent], [typeof TreeComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<TreeModule>;
}

declare class CategoryService {
    private readonly apiService;
    private readonly userPreferencesService;
    private readonly appConfigService;
    readonly categoriesApi: CategoriesApi;
    readonly searchApi: SearchApi;
    /**
     * Get subcategories of a given parent category
     *
     * @param parentCategoryId The identifier of a parent category.
     * @param skipCount Number of top categories to skip.
     * @param maxItems Maximum number of subcategories returned from Observable.
     * @returns Observable<CategoryPaging>
     */
    getSubcategories(parentCategoryId: string, skipCount?: number, maxItems?: number): Observable<CategoryPaging>;
    /**
     * Get a category by ID
     *
     * @param categoryId The identifier of a category.
     * @param opts Optional parameters.
     * @param opts.fields A list of field names.
     * @param opts.include Returns additional information about the category. The following optional fields can be requested:
     * count
     * path
     * @returns Observable<CategoryEntry>
     */
    getCategory(categoryId: string, opts?: any): Observable<CategoryEntry>;
    /**
     * Creates subcategories under category with provided categoryId
     *
     * @param parentCategoryId The identifier of a parent category.
     * @param payload List of categories to be created.
     * @returns Observable<CategoryPaging | CategoryEntry>
     */
    createSubcategories(parentCategoryId: string, payload: CategoryBody[]): Observable<CategoryPaging | CategoryEntry>;
    /**
     * Updates category
     *
     * @param categoryId The identifier of a category.
     * @param payload Updated category body
     * @returns Observable<CategoryEntry>
     */
    updateCategory(categoryId: string, payload: CategoryBody): Observable<CategoryEntry>;
    /**
     * Deletes category
     *
     * @param categoryId The identifier of a category.
     * @returns Observable<void>
     */
    deleteCategory(categoryId: string): Observable<void>;
    /**
     * Searches categories by their name.
     *
     * @param name Value for name which should be used during searching categories.
     * @param skipCount Specify how many first results should be skipped. Default 0.
     * @param maxItems Specify max number of returned categories. Default is specified by UserPreferencesService.
     * @returns Observable<ResultSetPaging> Found categories which name contains searched name.
     */
    searchCategories(name: string, skipCount?: number, maxItems?: number): Observable<ResultSetPaging>;
    /**
     * List of categories that node is assigned to
     *
     * @param nodeId The identifier of a node.
     * @returns Observable<CategoryPaging> Categories that node is assigned to
     */
    getCategoryLinksForNode(nodeId: string): Observable<CategoryPaging>;
    /**
     * Unlink category from a node
     *
     * @param nodeId The identifier of a node.
     * @param categoryId The identifier of a category.
     * @returns Observable<void>
     */
    unlinkNodeFromCategory(nodeId: string, categoryId: string): Observable<void>;
    /**
     * Link node to a category
     *
     * @param nodeId The identifier of a node.
     * @param categoryLinkBodyCreate Array of a categories that node will be linked to.
     * @returns Observable<CategoryEntry>
     */
    linkNodeToCategory(nodeId: string, categoryLinkBodyCreate: CategoryLinkBody[]): Observable<CategoryPaging | CategoryEntry>;
    /**
     * Checks if categories plugin is enabled.
     *
     * @returns boolean true if categories plugin is enabled, false otherwise.
     */
    areCategoriesEnabled(): boolean;
    static ɵfac: i0.ɵɵFactoryDeclaration<CategoryService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CategoryService>;
}

/*!
 * @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.
 */

interface CategoryNode extends TreeNode {
    description?: string;
}

declare class CategoryTreeDatasourceService extends TreeService<CategoryNode> {
    private readonly categoryService;
    getSubNodes(parentNodeId: string, skipCount?: number, maxItems?: number, name?: string): Observable<TreeResponse<CategoryNode>>;
    static ɵfac: i0.ɵɵFactoryDeclaration<CategoryTreeDatasourceService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<CategoryTreeDatasourceService>;
}

/*!
 * @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.
 */
declare const CategoriesManagementMode: {
    readonly CRUD: "CRUD";
    readonly ASSIGN: "ASSIGN";
};
type CategoriesManagementMode = (typeof CategoriesManagementMode)[keyof typeof CategoriesManagementMode];

/*!
 * @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.
 */

interface CategoryNameControlErrors {
    duplicatedExistingCategory?: boolean;
    duplicatedCategory?: boolean;
    emptyCategory?: boolean;
    required?: boolean;
    specialCharacters?: boolean;
    endsWithDot?: boolean;
}
declare class CategoriesManagementComponent implements OnInit, OnDestroy {
    private readonly categoryService;
    readonly nameErrorMessagesByErrors: Map<keyof CategoryNameControlErrors, string>;
    private readonly existingCategoryLoaded$;
    private readonly cancelExistingCategoriesLoading$;
    private readonly _categoryNameControl;
    private _existingCategories;
    private _categoryNameErrorMessageKey;
    private _existingCategoriesLoading;
    private _typing;
    private _existingCategoriesPanelVisible;
    private _categoryNameControlVisible;
    private readonly existingCategoriesListLimit;
    initialCategories: Category[];
    noCategoriesMsg: string;
    removeCategoryTitle: string;
    existingCategoriesMsg: string;
    /** Categories to display initially */
    categories: Category[];
    /**
     * Decides if categoryNameControl should be visible. Sets also existing categories panel visibility
     * and scrolls control into view when visible.
     *
     * @param categoryNameControlVisible control visibility.
     */
    set categoryNameControlVisible(categoryNameControlVisible: boolean);
    get categoryNameControlVisible(): boolean;
    /** Emits when classifiable aspect changes */
    classifiableChanged: Observable<void>;
    /** Disables remove button in upper categories list */
    disableRemoval: boolean;
    /**
     * Component mode.
     * In ASSIGN mode we can only assign/unassign categories from existing list.
     * In CRUD mode we can create categories.
     */
    managementMode: CategoriesManagementMode;
    /** ID of a parent category. New categories will be created under this parent */
    parentId: string;
    /** Toggles multiselect mode */
    multiSelect: boolean;
    /** Emits when state of upper categories list changes */
    categoriesChange: EventEmitter<Category[]>;
    /** Emits when categoryNameControl visibility changes */
    categoryNameControlVisibleChange: EventEmitter<boolean>;
    private readonly categoryNameInputElement;
    private readonly destroyRef;
    ngOnInit(): void;
    ngOnDestroy(): void;
    get categoryNameControl(): FormControl<string>;
    get showEmptyCategoryMessage(): boolean;
    get existingCategories(): Category[];
    get categoryNameErrorMessageKey(): string;
    get existingCategoriesLoading(): boolean;
    get typing(): boolean;
    get existingCategoriesPanelVisible(): boolean;
    get isCRUDMode(): boolean;
    /**
     * Adds category that has been typed to a categoryNameControl and hides it afterwards.
     */
    addCategory(): void;
    /**
     * Adds existing category to categories list and removes it from existing categories list.
     *
     * @param category - selection list change containing selected category
     */
    addCategoryToAssign(category: Category): void;
    /**
     * Removes the category from categories list and adds it to existing categories list in ASSIGN mode.
     *
     * @param category - category to remove
     */
    removeCategory(category: Category): void;
    private onNameControlValueChange;
    private searchForExistingCategories;
    private getChildrenCategories;
    private validateIfNotAlreadyAdded;
    private validateIfNotAlreadyCreated;
    private compareCategories;
    private validateEmptyCategory;
    private validateSpecialCharacters;
    private validateEndsWithDot;
    private setCategoryNameControlErrorMessageKey;
    private sortCategoriesList;
    private clearCategoryNameInput;
    static ɵfac: i0.ɵɵFactoryDeclaration<CategoriesManagementComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<CategoriesManagementComponent, "adf-categories-management", never, { "categories": { "alias": "categories"; "required": false; }; "categoryNameControlVisible": { "alias": "categoryNameControlVisible"; "required": false; }; "classifiableChanged": { "alias": "classifiableChanged"; "required": false; }; "disableRemoval": { "alias": "disableRemoval"; "required": false; }; "managementMode": { "alias": "managementMode"; "required": true; }; "parentId": { "alias": "parentId"; "required": false; }; "multiSelect": { "alias": "multiSelect"; "required": false; }; }, { "categoriesChange": "categoriesChange"; "categoryNameControlVisibleChange": "categoryNameControlVisibleChange"; }, never, never, true, never>;
}

/** @deprecated use `CategoriesManagementComponent` standalone component instead */
declare class CategoriesModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<CategoriesModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<CategoriesModule, never, [typeof CategoriesManagementComponent], [typeof CategoriesManagementComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<CategoriesModule>;
}

/*!
 * @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.
 */

declare class AlfrescoViewerComponent implements OnChanges, OnInit {
    private readonly apiService;
    private readonly nodesApiService;
    private readonly renditionService;
    private readonly viewUtilService;
    private readonly contentService;
    private readonly uploadService;
    dialog: MatDialog;
    private readonly cdr;
    private readonly nodeActionsService;
    adfViewer: ViewerComponent<{
        node: Node;
    }>;
    toolbar: ViewerToolbarComponent;
    sidebar: ViewerSidebarComponent;
    toolbarActions: ViewerToolbarActionsComponent;
    moreActions: ViewerMoreActionsComponent;
    openWith: ViewerOpenWithComponent;
    viewerExtensions: TemplateRef<any>;
    /** Node Id of the file to load. */
    nodeId: string;
    /** Version Id of the file to load. */
    versionId: string;
    /** Shared link id (to display shared file). */
    sharedLinkId: string;
    /** Hide or show the viewer */
    showViewer: boolean;
    /**
     * Number of times the Viewer will retry fetching content Rendition.
     * There is a delay of at least one second between attempts.
     */
    maxRetries: number;
    /** Allows `back` navigation */
    allowGoBack: boolean;
    /** Hide or show the toolbar */
    showToolbar: boolean;
    /**
     * If `true` then show the Viewer as a full page over the current content.
     * Otherwise, fit inside the parent div.
     */
    overlayMode: boolean;
    /**
     * Toggles before/next navigation. You can use the arrow buttons to navigate
     * between documents in the collection.
     */
    allowNavigate: boolean;
    /** Toggles the "before" ("<") button. Requires `allowNavigate` to be enabled. */
    canNavigateBefore: boolean;
    /** Toggles the next (">") button. Requires `allowNavigate` to be enabled. */
    canNavigateNext: boolean;
    /** Allow the left the sidebar. */
    allowLeftSidebar: boolean;
    /** Allow the right sidebar. */
    allowRightSidebar: boolean;
    /** Toggles right sidebar visibility. Requires `allowRightSidebar` to be set to `true`. */
    showRightSidebar: boolean;
    /** Toggles left sidebar visibility. Requires `allowLeftSidebar` to be set to `true`. */
    showLeftSidebar: boolean;
    /** Toggles downloading. */
    allowDownload: boolean;
    /** Toggles printing. */
    allowPrint: boolean;
    /** Toggles the 'Full Screen' feature. */
    allowFullScreen: boolean;
    /** Toggles the 'Info Button' */
    hideInfoButton: boolean;
    /** Change the close button position Right/Left */
    closeButtonPosition: CloseButtonPosition;
    /** The template for the right sidebar. The template context contains the loaded node data. */
    sidebarRightTemplate: TemplateRef<any>;
    /** The template for the left sidebar. The template context contains the loaded node data. */
    sidebarLeftTemplate: TemplateRef<any>;
    /** Should viewer work in read only mode */
    readOnly: boolean;
    /** Toggles dividers visibility */
    showToolbarDividers: boolean;
    /** Emitted when the shared link used is not valid. */
    invalidSharedLink: EventEmitter<void>;
    /** Emitted when user clicks 'Navigate Before' ("<") button. */
    navigateBefore: EventEmitter<KeyboardEvent | MouseEvent>;
    /** Emitted when user clicks 'Navigate Next' (">") button. */
    navigateNext: EventEmitter<KeyboardEvent | MouseEvent>;
    /** Emitted when the viewer close */
    showViewerChange: EventEmitter<boolean>;
    private cacheBusterNumber;
    versionEntry: VersionEntry;
    urlFileContent: string;
    blobFileContent: Blob;
    fileName: string;
    mimeType: string;
    nodeMimeType: string;
    nodeEntry: NodeEntry;
    tracks: Track[];
    canEditNode: boolean;
    allowedEditActions: {
        [key: string]: boolean;
    };
    sidebarRightTemplateContext: {
        node: Node;
    };
    sidebarLeftTemplateContext: {
        node: Node;
    };
    readonly sharedLinksApi: SharedlinksApi;
    readonly versionsApi: VersionsApi;
    readonly nodesApi: NodesApi;
    readonly contentApi: ContentApi;
    private readonly destroyRef;
    constructor();
    ngOnInit(): void;
    private onNodeUpdated;
    private getNodeVersionProperty;
    private setupSharedLink;
    private setupNode;
    private setUpNodeFile;
    private setUpSharedLinkFile;
    private getSharedLinkRendition;
    private generateCacheBusterNumber;
    /**
     * close the viewer
     */
    onClose(): void;
    onPrintContent(event: MouseEvent): void;
    onSubmitFile(newImageBlob: Blob): void;
    onNavigateBeforeClick(event: MouseEvent | KeyboardEvent): void;
    onNavigateNextClick(event: MouseEvent | KeyboardEvent): void;
    isSourceDefined(): boolean;
    ngOnChanges(changes: SimpleChanges): void;
    onDownloadFile(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<AlfrescoViewerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AlfrescoViewerComponent, "adf-alfresco-viewer", never, { "nodeId": { "alias": "nodeId"; "required": false; }; "versionId": { "alias": "versionId"; "required": false; }; "sharedLinkId": { "alias": "sharedLinkId"; "required": false; }; "showViewer": { "alias": "showViewer"; "required": false; }; "maxRetries": { "alias": "maxRetries"; "required": false; }; "allowGoBack": { "alias": "allowGoBack"; "required": false; }; "showToolbar": { "alias": "showToolbar"; "required": false; }; "overlayMode": { "alias": "overlayMode"; "required": false; }; "allowNavigate": { "alias": "allowNavigate"; "required": false; }; "canNavigateBefore": { "alias": "canNavigateBefore"; "required": false; }; "canNavigateNext": { "alias": "canNavigateNext"; "required": false; }; "allowLeftSidebar": { "alias": "allowLeftSidebar"; "required": false; }; "allowRightSidebar": { "alias": "allowRightSidebar"; "required": false; }; "showRightSidebar": { "alias": "showRightSidebar"; "required": false; }; "showLeftSidebar": { "alias": "showLeftSidebar"; "required": false; }; "allowDownload": { "alias": "allowDownload"; "required": false; }; "allowPrint": { "alias": "allowPrint"; "required": false; }; "allowFullScreen": { "alias": "allowFullScreen"; "required": false; }; "hideInfoButton": { "alias": "hideInfoButton"; "required": false; }; "closeButtonPosition": { "alias": "closeButtonPosition"; "required": false; }; "sidebarRightTemplate": { "alias": "sidebarRightTemplate"; "required": false; }; "sidebarLeftTemplate": { "alias": "sidebarLeftTemplate"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "showToolbarDividers": { "alias": "showToolbarDividers"; "required": false; }; }, { "invalidSharedLink": "invalidSharedLink"; "navigateBefore": "navigateBefore"; "navigateNext": "navigateNext"; "showViewerChange": "showViewerChange"; }, ["toolbar", "sidebar", "toolbarActions", "moreActions", "openWith", "viewerExtensions"], ["adf-viewer-toolbar", "adf-viewer-toolbar-actions", "adf-viewer-more-actions", "adf-viewer-open-with", "adf-viewer-sidebar"], true, never>;
}

/** @deprecated import AlfrescoViewerComponent instead */
declare class AlfrescoViewerModule {
    static ɵfac: i0.ɵɵFactoryDeclaration<AlfrescoViewerModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<AlfrescoViewerModule, never, [typeof AlfrescoViewerComponent], [typeof AlfrescoViewerComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<AlfrescoViewerModule>;
}

/*!
 * @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.
 */

interface SecurityControlsGroupResponse {
    pagination: PaginationModel;
    entries: SecurityGroup[];
}

/*!
 * @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.
 */

interface SecurityControlsMarkResponse {
    pagination: PaginationModel;
    entries: SecurityMark[];
}

declare class SecurityControlsService {
    private readonly apiService;
    private readonly userPreferencesService;
    private readonly groupsPaginatedSource;
    groupsPaginated$: Observable<SecurityControlsGroupResponse>;
    private readonly reloadSecurityControls;
    reloadSecurityControls$: Observable<void>;
    private readonly _reloadAuthorityClearance;
    reloadAuthorityClearance$: Observable<void>;
    private readonly marksPaginatedSource;
    marksPaginated$: Observable<SecurityControlsMarkResponse>;
    private readonly loadingSource;
    loading$: Observable<boolean>;
    get reloadAuthorityClearance(): Subject<void>;
    readonly groupsApi: SecurityGroupsApi;
    readonly marksApi: SecurityMarksApi;
    readonly authorityClearanceApi: AuthorityClearanceApi;
    /**
     * Get All security groups
     *
     * @param skipCount The number of entities that exist in the collection before those included in this list.
     * @param maxItems The maximum number of items to return in the list. Default is specified by UserPreferencesService.
     * @param include Additional information about the security group
     * @returns Promise<SecurityControlsGroupResponse>
     */
    getSecurityGroup(skipCount?: number, maxItems?: number, include?: string): Promise<SecurityControlsGroupResponse>;
    /**
     * Create security group
     *
     * @param input securityGroupBody.
     * @returns Observable<SecurityGroupEntry>
     */
    createSecurityGroup(input: SecurityGroupBody): Observable<SecurityGroupEntry>;
    /**
     * Create security marks
     *
     * @param securityGroupId The key for the security group id.
     * @param input securityMarkBody[].
     * @returns Promise<SecurityMarkPaging | SecurityMarkEntry>
     */
    createSecurityMarks(securityGroupId: string, input: SecurityMarkBody[]): Promise<SecurityMarkPaging | SecurityMarkEntry>;
    /**
     * Get security mark value
     * Gets the value for a selected **securityGroupId**.
     *
     * @param securityGroupId The key for the security group id.
     * @param skipCount The number of entities that exist in the collection before those included in this list.
     * @returns Promise<SecurityControlsMarkResponse>
     */
    getSecurityMark(securityGroupId: string, skipCount?: number): Promise<SecurityControlsMarkResponse>;
    /**
     * Update a security groups information
     *
     * @param securityGroupId The Key of Security Group id for which info is required
     * @param input SecurityGroupBody
     * @param opts additional information about the security group
     * @returns Promise<SecurityGroupEntry>
     */
    updateSecurityGroup(securityGroupId: string, input: SecurityGroupBody, opts?: any): Promise<SecurityGroupEntry>;
    /**
     * Updates Security Mark value
     *
     * @param securityGroupId The key for the security group id.
     * @param securityMarkId The key for the security mark is in use or not.
     * @param input securityMarkBody.
     * @returns Promise<SecurityMarkEntry>
     */
    updateSecurityMark(securityGroupId: string, securityMarkId: string, input: SecurityMarkBody): Promise<SecurityMarkEntry>;
    /**
     * Delete security group
     *
     * @param securityGroupId The key for the security group id.
     * @returns Observable<void>
     */
    deleteSecurityGroup(securityGroupId: string): Observable<void>;
    /**
     * Delete security mark
     *
     * @param securityGroupId The key for the security group id.
     * @param securityMarkId The key for the security mark id.
     * @returns Promise<SecurityMarkEntry>
     */
    deleteSecurityMark(securityGroupId: string, securityMarkId: string): Promise<SecurityMarkEntry>;
    /**
     * Get the authority clearances for a single user/group
     *
     * @param authorityName The name for the authority for which the clearance is to be fetched. Can be left blank in which case it will fetch it for all users with pagination
     * @param skipCount The number of entities that exist in the collection before those included in this list.
     * @param maxItems The maximum number of items to return in the list. Default is specified by UserPreferencesService.
     * @returns Observable<AuthorityClearanceGroupPaging>
     */
    getClearancesForAuthority(authorityName: string, skipCount?: number, maxItems?: number): Observable<AuthorityClearanceGroupPaging>;
    /**
     * Updates the authority clearance.
     *
     * @param authorityName The name for the authority for which the clearance is to be updated
     * @param securityMarksList NodeSecurityMarkBody[]
     * @returns Observable<SecurityMarkEntry | SecurityMarkPaging>
     */
    updateClearancesForAuthority(authorityName: string, securityMarksList: NodeSecurityMarkBody[]): Observable<SecurityMarkEntry | SecurityMarkPaging>;
    reloadSecurityGroups(): void;
    static ɵfac: i0.ɵɵFactoryDeclaration<SecurityControlsService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<SecurityControlsService>;
}

declare class AlfrescoApiNoAuthService extends AlfrescoApiService {
    private readonly adfHttpClient;
    createInstance(config: AlfrescoApiConfig): AlfrescoApi;
    static ɵfac: i0.ɵɵFactoryDeclaration<AlfrescoApiNoAuthService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AlfrescoApiNoAuthService>;
}

/**
 * Create a factory to resolve an api service instance
 *
 * @param angularAlfrescoApiService loader service
 * @returns factory function
 */
declare function createAlfrescoApiInstance(angularAlfrescoApiService: AlfrescoApiLoaderService): () => Promise<any>;
declare class AlfrescoApiLoaderService {
    private readonly appConfig;
    private readonly apiService;
    private readonly securityOptionsLoaderService;
    private readonly storageService;
    init(): Promise<any>;
    private initAngularAlfrescoApi;
    static ɵfac: i0.ɵɵFactoryDeclaration<AlfrescoApiLoaderService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AlfrescoApiLoaderService>;
}

/*!
 * @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.
 */

declare class LegalHoldService {
    private readonly apiService;
    readonly legalHoldApi: LegalHoldApi;
    /**
     * Gets the list of holds available in the file plan.
     *
     * @param filePlanId The identifier of a file plan. You can also use the -filePlan- alias.
     * @param options Optional parameters supported by JS-API
     * @returns List of holds Observable<Hold[]>
     */
    getHolds(filePlanId: string, options?: ContentPagingQuery): Observable<Hold[]>;
    /**
     * Assign a node to a hold.
     *
     * @param nodeId The Id of the node which will be assigned to a hold
     * @param holdId The Id of the hold to which nodes will be assigned
     * @returns Observable<HoldEntry>
     */
    assignHold(nodeId: string, holdId: string): Observable<HoldEntry>;
    /**
     * Assign multiple nodes to a hold.
     *
     * @param nodeIds The list of managed node Ids
     * @param holdId The Id of the hold to which nodes will be assigned
     * @returns Observable<HoldPaging>
     */
    assignHolds(nodeIds: {
        id: string;
    }[], holdId: string): Observable<HoldPaging>;
    /**
     * Unassign the relationship between a child with id nodeId and a parent hold with id holdId.
     *
     * @param holdId The hold Id
     * @param nodeId The Id of the node which is unassigned
     * @returns Empty response
     */
    unassignHold(holdId: string, nodeId: string): Observable<void>;
    /**
     * Create hold.
     *
     * @param filePlanId The identifier of a file plan. You can also use the -filePlan- alias.
     * @param hold Hold to create
     * @returns List of created holds Observable<HoldEntry>
     */
    createHold(filePlanId: string, hold: HoldBody): Observable<HoldEntry>;
    /**
     * Create list of holds.
     *
     * @param filePlanId The identifier of a file plan. You can also use the -filePlan- alias.
     * @param holds Array of holds to create
     * @returns List of created holds Observable<HoldPaging>
     */
    createHolds(filePlanId: string, holds: HoldBody[]): Observable<HoldPaging>;
    /**
     * Start the asynchronous bulk process for a hold with id holdId based on search query results.
     *
     * @param holdId The identifier of a hold
     * @param query Search query
     * @returns Observable<BulkAssignHoldResponseEntry>
     */
    bulkAssignHold(holdId: string, query: RequestQuery): Observable<BulkAssignHoldResponseEntry>;
    /**
     * Assign a folder to a hold.
     *
     * @param holdId The identifier of a hold
     * @param folderId The identifier of a folder
     * @param language Language code
     * @returns Observable<BulkAssignHoldResponseEntry>
     */
    bulkAssignHoldToFolder(holdId: string, folderId: string, language: string): Observable<BulkAssignHoldResponseEntry>;
    /**
     * Get status of bulk operation with **bulkStatusId** for **holdId**.
     *
     * @param bulkStatusId The identifier of a bulk status
     * @param holdId The identifier of a hold
     * @returns Promise<HoldsBulkStatusEntry>
     */
    getBulkOperationStatus(bulkStatusId: string, holdId: string): Observable<HoldBulkStatusEntry>;
    static ɵfac: i0.ɵɵFactoryDeclaration<LegalHoldService, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<LegalHoldService>;
}

declare class AlfrescoApiServiceMock extends AlfrescoApiService {
    constructor();
    initialize(): Promise<any>;
    static ɵfac: i0.ɵɵFactoryDeclaration<AlfrescoApiServiceMock, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<AlfrescoApiServiceMock>;
}

/*!
 * @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.
 */

declare class ContentModule {
    static forRoot(): ModuleWithProviders<ContentModule>;
    /**
     * @deprecated use `ContentModule` instead
     * @returns ModuleWithProviders<ContentModule>
     */
    static forChild(): ModuleWithProviders<ContentModule>;
    static ɵfac: i0.ɵɵFactoryDeclaration<ContentModule, never>;
    static ɵmod: i0.ɵɵNgModuleDeclaration<ContentModule, never, [typeof i1.MatDatetimepickerModule, typeof i1.MatNativeDatetimeModule, typeof TagsCreatorComponent, typeof TagActionsComponent, typeof TagListComponent, typeof TagNodeListComponent, typeof DownloadZipDialogComponent, typeof FolderDialogComponent, typeof NodeLockDialogComponent, typeof LibraryDialogComponent, typeof CategorySelectorDialogComponent, typeof SearchCheckListComponent, typeof SearchChipAutocompleteInputComponent, typeof SearchChipListComponent, typeof EmptySearchResultComponent, typeof SearchFilterComponent, typeof SearchFilterCardComponent, typeof SearchWidgetContainerComponent, typeof SearchTextComponent, typeof SearchFilterAutocompleteChipsComponent, typeof SearchDatetimeRangeComponent, typeof SearchFacetFieldComponent, typeof ResetSearchDirective, typeof SearchDateRangeComponent, typeof SearchFilterMenuCardComponent, typeof SearchFacetChipTabbedComponent, typeof SearchFacetTabbedContentComponent, typeof SearchFilterTabbedComponent, typeof SearchFilterTabDirective, typeof SearchDateRangeTabbedComponent, typeof SearchSliderComponent, typeof SearchNumberRangeComponent, typeof SearchPanelComponent, typeof SearchRadioComponent, typeof SearchFilterContainerComponent, typeof SearchFormComponent, typeof SearchFilterChipsComponent, typeof SearchWidgetChipComponent, typeof SearchFacetChipComponent, typeof SearchLogicalFilterComponent, typeof SearchPropertiesComponent, typeof SearchComponent, typeof SearchControlComponent, typeof ContentActionComponent, typeof FileAutoDownloadComponent, typeof FilterHeaderComponent, typeof LibraryNameColumnComponent, typeof LibraryRoleColumnComponent, typeof LibraryStatusColumnComponent, typeof NameColumnComponent, typeof TrashcanNameColumnComponent, typeof ContentActionListComponent, typeof DocumentListComponent, typeof FileDraggableDirective, typeof UploadDragAreaComponent, typeof UploadButtonComponent, typeof UploadVersionButtonComponent, typeof FileUploadingListRowComponent, typeof FileUploadingListComponent, typeof FileUploadingDialogComponent, typeof ContentNodeSelectorPanelComponent, typeof NameLocationCellComponent, typeof ContentNodeSelectorComponent, typeof DropdownSitesComponent, typeof ShareDialogComponent, typeof NodeSharedDirective, typeof ContentMetadataComponent, typeof ContentMetadataCardComponent, typeof ContentMetadataHeaderComponent, typeof NodeLockDirective, typeof NodeCounterDirective, typeof NodeCounterComponent, typeof AutoFocusDirective, typeof LibraryFavoriteDirective, typeof LibraryMembershipDirective, typeof NodeDeleteDirective, typeof NodeFavoriteDirective, typeof NodeRestoreDirective, typeof NodeDownloadDirective, typeof AddPermissionPanelComponent, typeof AddPermissionComponent, typeof AddPermissionDialogComponent, typeof NodePathColumnComponent, typeof PermissionContainerComponent, typeof PermissionListComponent, typeof UserNameColumnComponent, typeof UserIconColumnComponent, typeof UserRoleColumnComponent, typeof InheritPermissionDirective, typeof PopOverDirective, typeof VersionUploadComponent, typeof VersionManagerComponent, typeof VersionListComponent, typeof VersionComparisonComponent, typeof AspectListComponent, typeof AspectListDialogComponent], [typeof TagsCreatorComponent, typeof TagActionsComponent, typeof TagListComponent, typeof TagNodeListComponent, typeof ContentActionComponent, typeof FileAutoDownloadComponent, typeof FilterHeaderComponent, typeof LibraryNameColumnComponent, typeof LibraryRoleColumnComponent, typeof LibraryStatusColumnComponent, typeof NameColumnComponent, typeof TrashcanNameColumnComponent, typeof ContentActionListComponent, typeof DocumentListComponent, typeof FileDraggableDirective, typeof UploadDragAreaComponent, typeof UploadButtonComponent, typeof UploadVersionButtonComponent, typeof FileUploadingListRowComponent, typeof FileUploadingListComponent, typeof FileUploadingDialogComponent, typeof SearchCheckListComponent, typeof SearchChipAutocompleteInputComponent, typeof SearchChipListComponent, typeof EmptySearchResultComponent, typeof SearchFilterComponent, typeof SearchFilterCardComponent, typeof SearchWidgetContainerComponent, typeof SearchTextComponent, typeof SearchFilterAutocompleteChipsComponent, typeof SearchDatetimeRangeComponent, typeof SearchFacetFieldComponent, typeof ResetSearchDirective, typeof SearchDateRangeComponent, typeof SearchFilterMenuCardComponent, typeof SearchFacetChipTabbedComponent, typeof SearchFacetTabbedContentComponent, typeof SearchFilterTabbedComponent, typeof SearchFilterTabDirective, typeof SearchDateRangeTabbedComponent, typeof SearchSliderComponent, typeof SearchNumberRangeComponent, typeof SearchPanelComponent, typeof SearchRadioComponent, typeof SearchFilterContainerComponent, typeof SearchFormComponent, typeof SearchFilterChipsComponent, typeof SearchWidgetChipComponent, typeof SearchFacetChipComponent, typeof SearchLogicalFilterComponent, typeof SearchPropertiesComponent, typeof SearchComponent, typeof SearchControlComponent, typeof ContentNodeSelectorPanelComponent, typeof NameLocationCellComponent, typeof ContentNodeSelectorComponent, typeof DropdownSitesComponent, typeof ShareDialogComponent, typeof NodeSharedDirective, typeof ContentMetadataComponent, typeof ContentMetadataCardComponent, typeof ContentMetadataHeaderComponent, typeof DownloadZipDialogComponent, typeof FolderDialogComponent, typeof NodeLockDialogComponent, typeof LibraryDialogComponent, typeof CategorySelectorDialogComponent, typeof NodeLockDirective, typeof NodeCounterDirective, typeof NodeCounterComponent, typeof AutoFocusDirective, typeof LibraryFavoriteDirective, typeof LibraryMembershipDirective, typeof NodeDeleteDirective, typeof NodeFavoriteDirective, typeof NodeRestoreDirective, typeof NodeDownloadDirective, typeof AddPermissionPanelComponent, typeof AddPermissionComponent, typeof AddPermissionDialogComponent, typeof NodePathColumnComponent, typeof PermissionContainerComponent, typeof PermissionListComponent, typeof UserNameColumnComponent, typeof UserIconColumnComponent, typeof UserRoleColumnComponent, typeof InheritPermissionDirective, typeof PopOverDirective, typeof VersionUploadComponent, typeof VersionManagerComponent, typeof VersionListComponent, typeof VersionComparisonComponent, typeof AspectListComponent, typeof AspectListDialogComponent]>;
    static ɵinj: i0.ɵɵInjectorDeclaration<ContentModule>;
}

export { ADF_SEARCH_CONFIGURATION, ALFRESCO_API_FACTORY, ASPECT_LIST_DIRECTIVES, AddPermissionComponent, AddPermissionDialogComponent, AddPermissionPanelComponent, AlfrescoApiLoaderService, AlfrescoApiNoAuthService, AlfrescoApiService, AlfrescoApiServiceMock, AlfrescoIconComponent, AlfrescoViewerComponent, AlfrescoViewerModule, AllowableOperationsEnum, AspectListComponent, AspectListDialogComponent, AspectListModule, AspectListService, AspectOrientedConfigService, AutoFocusDirective, AutocompleteField, BaseQueryBuilderService, BasicPropertiesService, BreadcrumbComponent, CONTENT_DIALOG_DIRECTIVES, CONTENT_DIRECTIVES, CONTENT_METADATA_DIRECTIVES, CONTENT_NODE_SELECTOR_DIRECTIVES, CONTENT_NODE_SHARE_DIRECTIVES, CONTENT_PERMISSION_MANAGER_DIRECTIVES, CONTENT_SEARCH_DIRECTIVES, CONTENT_TAG_DIRECTIVES, CONTENT_UPLOAD_DIRECTIVES, CONTENT_VERSION_DIRECTIVES, CardViewContentUpdateService, CategoriesManagementComponent, CategoriesManagementMode, CategoriesModule, CategorySelectorDialogComponent, CategoryService, CategoryTreeDatasourceService, ContentActionComponent, ContentActionListComponent, ContentActionModel, ContentActionTarget, ContentDirectiveModule, ContentMetadataCardComponent, ContentMetadataComponent, ContentMetadataConfigFactory, ContentMetadataHeaderComponent, ContentMetadataModule, ContentMetadataService, ContentModule, ContentNodeDialogService, ContentNodeSelectorComponent, ContentNodeSelectorModule, ContentNodeSelectorPanelComponent, ContentNodeSelectorPanelService, ContentNodeShareModule, ContentService, ContentTypeDialogComponent, ContentTypePropertiesService, ContentTypeService, ContentVersionService, CustomAspectsWhere, CustomResourcesService, DEFAULT_DATETIME_FORMAT, DOCUMENT_LIST_DIRECTIVES, DROP_EFFECT, DateRangeType, DefaultPanels, DialogAspectListService, DialogModule, DiscoveryApiService, DocumentActionsService, DocumentListComponent, DocumentListModule, DocumentListService, DownloadZipDialogComponent, DownloadZipDialogModule, DropdownBreadcrumbComponent, DropdownSitesComponent, ERR_COL_NOT_FOUND, ERR_OBJECT_NOT_FOUND, ERR_ROW_NOT_FOUND, EcmCompanyModel, EcmUserModel, EmptySearchResultComponent, FacetBucketSortBy, FacetBucketSortDirection, FavoritesApiService, FileAutoDownloadComponent, FileDraggableDirective, FileModel, FileSizeOperator, FileSizeUnit, FileUploadCompleteEvent, FileUploadDeleteEvent, FileUploadErrorEvent, FileUploadEvent, FileUploadOptions, FileUploadStatus, FileUploadingDialogComponent, FileUploadingListComponent, FileUploadingListRowComponent, FilterHeaderComponent, FolderActionsService, FolderDialogComponent, GroupService, INPUT_FOCUS_CSS_CLASS, InLastDateType, IndifferentConfigService, InfiniteScrollDatasource, InheritPermissionDirective, LayoutOrientedConfigService, LegalHoldService, LibraryDialogComponent, LibraryFavoriteDirective, LibraryMembershipDirective, LibraryNameColumnComponent, LibraryRoleColumnComponent, LibraryStatusColumnComponent, LiveErrorStateMatcher, LockService, LogicalSearchFields, MemberModel, NameColumnComponent, NameLocationCellComponent, NewVersionUploaderDataAction, NewVersionUploaderDialogComponent, NewVersionUploaderModule, NewVersionUploaderService, NodeAction, NodeActionsService, NodeAspectService, NodeCommentsComponent, NodeCommentsModule, NodeCommentsService, NodeCounterComponent, NodeCounterDirective, NodeDeleteDirective, NodeDownloadDirective, NodeEntityEvent, NodeEntryEvent, NodeFavoriteDirective, NodeLockDialogComponent, NodeLockDirective, NodeMetadata, NodePathColumnComponent, NodePermissionDialogService, NodePermissionService, NodeRestoreDirective, NodeSharedDirective, NodeTooltipUtils, NodesApiService, PeopleContentService, PermissionContainerComponent, PermissionDisplayModel, PermissionListComponent, PermissionManagerModule, PermissionModel, PermissionStyleModel, PermissionsEnum, PopOverDirective, PropertyDescriptorsService, PropertyGroupTranslatorService, RECOGNISED_ECM_TYPES, Relations, RenditionService, ResetSearchDirective, ResponseFacetQueryList, RestoreMessageModel, SAVED_SEARCHES_SERVICE_PREFERENCES, SEARCH_QUERY_TOKEN, SavedSearchesBaseService, SavedSearchesLegacyService, SavedSearchesService, SearchCheckListComponent, SearchChipAutocompleteInputComponent, SearchChipListComponent, SearchComponent, SearchConfigurationService, SearchControlComponent, SearchDateRangeComponent, SearchDateRangeTabbedComponent, SearchDatetimeRangeComponent, SearchFacetChipComponent, SearchFacetChipTabbedComponent, SearchFacetFieldComponent, SearchFacetFiltersService, SearchFacetTabbedContentComponent, SearchFilterAutocompleteChipsComponent, SearchFilterCardComponent, SearchFilterChipsComponent, SearchFilterComponent, SearchFilterContainerComponent, SearchFilterList, SearchFilterMenuCardComponent, SearchFilterService, SearchFilterTabDirective, SearchFilterTabbedComponent, SearchFormComponent, SearchHeaderQueryBuilderService, SearchInputComponent, SearchLogicalFilterComponent, SearchModule, SearchNumberRangeComponent, SearchPanelComponent, SearchPermissionConfigurationService, SearchPropertiesComponent, SearchQueryBuilderService, SearchRadioComponent, SearchService, SearchSliderComponent, SearchTermValidator, SearchTextComponent, SearchWidgetChipComponent, SearchWidgetContainerComponent, SecurityControlsService, ShareDataRow, ShareDataTableAdapter, ShareDialogComponent, SharedLinksApiService, SitesService, StandardAspectsWhere, TagActionsComponent, TagListComponent, TagModule, TagNodeListComponent, TagService, TagsCreatorComponent, TagsCreatorMode, TrashcanNameColumnComponent, TreeBaseNode, TreeComponent, TreeModule, TreeNodeType, TreeService, TreeViewComponent, TreeViewDataSource, TreeViewModule, TreeViewService, UploadBase, UploadButtonComponent, UploadDragAreaComponent, UploadFilesEvent, UploadModule, UploadService, UploadVersionButtonComponent, UserIconColumnComponent, UserNameColumnComponent, UserRoleColumnComponent, VersionComparisonComponent, VersionCompatibilityDirective, VersionCompatibilityModule, VersionCompatibilityService, VersionListComponent, VersionListDataSource, VersionManagerComponent, VersionManagerModule, VersionUploadComponent, createAlfrescoApiInstance, defaultValidation, fakeSearch, forbidEndingDot, forbidOnlySpaces, forbidSpecialCharacters, mockError, searchMockApi };
export type { AddPermissionDialogData, AlfrescoApiFactory, AspectListDialogComponentData, AspectOrientedConfig, AutocompleteOption, CardViewGroup, CategoryNode, CategorySelectorDialogOptions, ContentActionHandler, ContentMetadataConfig, ContentMetadataCustomPanel, ContentMetadataPanel, ContentNodeSelectorComponentData, ContentNodeShareSettings, ContentTypeDialogComponentData, CustomAspectPaging, DatetimeRangeValue, DocumentListLoader, FacetField, FacetFieldBucket, FacetFieldSettings, FacetQuery, FacetWidget, FileSizeCondition, FileUploadProgress, FilterQuery, FilterSearch, FolderCreatedEvent, ImageResolver, InDifferentConfig, LayoutOrientedConfig, LayoutOrientedConfigItem, LayoutOrientedConfigLayoutBlock, LibraryEntity, LibraryMembershipErrorEvent, LibraryMembershipToggleEvent, LogicalSearchCondition, LogicalSearchConditionEnumValuedKeys, NewVersionUploaderData, NewVersionUploaderDialogData, NodePermissionsModel, OrganisedPropertyGroup, PeopleContentQueryRequestModel, PeopleContentQueryResponse, PeopleContentSortingModel, PresetConfig, Property, PropertyGroup, PropertyGroupContainer, QueryProvider, RefreshData, RoleModel, RoleModelOption, RowFilter, SavedSearch, SavedSearchStrategy, SavedSearchesPreferencesApiService, SearchCategory, SearchConfiguration, SearchConfigurationInterface, SearchDateRange, SearchForm, SearchListOption, SearchOptions, SearchProperties, SearchRadioOption, SearchRange, SearchSortingDefinition, SearchWidget, SearchWidgetSettings, SecurityControlsMarkResponse, SelectedBucket, TabbedFacetField, TreeContextMenuResult, TreeNode, TreeResponse, ValidationFunction, VersionManagerUploadData, ViewVersion };
