import * as _angular_core from '@angular/core'; import { OnDestroy, ElementRef, DestroyRef, Signal, InjectionToken, Type, Injector, ApplicationRef, EventEmitter, TemplateRef, ViewContainerRef, ComponentRef, ChangeDetectorRef, PipeTransform } from '@angular/core'; import * as rxjs from 'rxjs'; import { BehaviorSubject, Observable, Subject } from 'rxjs'; import * as _ngrx_signals from '@ngrx/signals'; import * as _sinequa_atomic from '@sinequa/atomic'; import { Article as Article$1, LegacyFilter, KeyOf, Query, QueryParams as QueryParams$1, AggregationItem, TreeAggregationNode, Aggregation, TreeAggregation, Conversion, CCApp, CCColumn, CCQuery, CCWebService, Principal, SpellingCorrectionMode, AuditEvents, CustomHighlights, Result, AuditEventType, AuditEventTypeValues, Suggestion, PreviewData, TextLocation, TextChunk, UserProfile, CCSortingChoice, LinkResult, ExportQueryModel, ExportOutputFormat, FilterOperator } from '@sinequa/atomic'; import { Router, Params, Route, NavigationEnd, CanActivateFn, ResolveFn } from '@angular/router'; import * as _sinequa_atomic_angular from '@sinequa/atomic-angular'; import * as _sinequa_ui from '@sinequa/ui'; import { cn, DialogService, DropdownComponent, SheetService, DateRangePickerDirective, DatepickerDirective, DialogComponent, DialogInterface, DialogEvent, PopoverComponent, PopoverContentComponent, DialogResult, BreakpointObserverService } from '@sinequa/ui'; import * as class_variance_authority_types from 'class-variance-authority/types'; import { VariantProps } from 'class-variance-authority'; import * as _angular_common_http from '@angular/common/http'; import { HttpClient, HttpHeaders, HttpContext, HttpParams, HttpResponse, HttpInterceptorFn, HttpRequest, HttpHandlerFn } from '@angular/common/http'; import { SafeHtml, Title, DomSanitizer } from '@angular/platform-browser'; import { Placement } from '@floating-ui/dom'; import * as _angular_forms from '@angular/forms'; import { FormGroup, FormControl } from '@angular/forms'; import { TranslocoService } from '@jsverse/transloco'; import { CdkDragDrop } from '@angular/cdk/drag-drop'; import * as _angular_cdk_overlay from '@angular/cdk/overlay'; import * as _tanstack_angular_virtual from '@tanstack/angular-virtual'; import { HighlightWords } from 'highlight-words'; import { DatePipe, DatePipeConfig } from '@angular/common'; declare class BackdropComponent implements OnDestroy { backdropVisible: boolean; private readonly backdrop; private readonly sub; constructor(); ngOnDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class BackdropService { isVisible: BehaviorSubject; show(): void; hide(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } interface DropdownItem { display?: string; value: string; } declare class DropdownInputComponent { label: _angular_core.InputSignal; placeholder: _angular_core.InputSignal; noResultLabel: _angular_core.InputSignal; suggestions: _angular_core.InputSignal; selected: _angular_core.InputSignal; onFocus: _angular_core.OutputEmitterRef; onKeyUp: _angular_core.OutputEmitterRef; removeItem: _angular_core.OutputEmitterRef; addItem: _angular_core.OutputEmitterRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class DropdownListComponent { items: _angular_core.InputSignal; onClick: _angular_core.OutputEmitterRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type PageConfiguration = { page: number; rowCount: number; pageSize: number; }; /** * Pager Component * @deprecated Use TanstackQuery solutions instead. */ declare class PagerComponent { readonly configuration: _angular_core.InputSignal; protected readonly page: _angular_core.WritableSignal; protected readonly hasPages: _angular_core.Signal; private readonly queryService; constructor(); nextPage(): void; previousPage(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * @deprecated Use the SearchInputFooter from @sinequa/ui instead. */ declare class SearchInputFooter { class: _angular_core.InputSignal; variants: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class DocumentLocatorComponent implements OnDestroy { /** * A readonly property that holds the required `Article` input. * This property is used to ensure that an `Article` object is provided * as an input to the component. */ readonly article: _angular_core.InputSignal; /** * The name of the aggregation to use for the document locator. */ readonly aggregation: _angular_core.InputSignal; readonly shadow: _angular_core.Signal | undefined>; readonly client: _angular_core.Signal | undefined>; readonly el: ElementRef; readonly router: Router; readonly queryParamStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: LegacyFilter[]; id?: string | undefined; }>; readonly aggregationStore: { aggregations: _angular_core.Signal<_sinequa_atomic.Aggregation[]>; update: (aggregations: _sinequa_atomic.Aggregation[]) => void; updateAggregation: (aggregation: _sinequa_atomic.Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => _sinequa_atomic.Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: _sinequa_atomic.Aggregation[]; }>; readonly locationSegments: _angular_core.WritableSignal; readonly visibleSegments: _angular_core.WritableSignal; readonly invisibleSegments: _angular_core.WritableSignal; readonly margin = 70; previousCount?: number; resizeObserver?: ResizeObserver; constructor(); ngOnDestroy(): void; onResize(): void; navigateToSegment(index: number, fromPopover?: boolean): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ErrorComponent { private readonly route; router: Router; /** * Human-readable error detail shown on the page, taken from the `message` query param. * Callers navigating here can pass it, e.g. on an auth failure: * `router.navigate(["error"], { queryParams: { message: err.message } })`. */ readonly message: string | undefined; /** Navigate home and re-bootstrap the application (fresh authentication attempt). */ goHome(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class LoadingComponent { protected readonly state: _angular_core.Signal<{ ready: boolean; extracts: Map; }>; private readonly application; private readonly queryParamsStore; private readonly route; private readonly router; constructor(destroyRef: DestroyRef); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class MetadataComponent { click: _angular_core.OutputEmitterRef<{ filter: LegacyFilter; event: Event; }>; class: _angular_core.InputSignal; variant: _angular_core.InputSignal<"primary" | "secondary" | "outline" | null | undefined>; metadata: _angular_core.InputSignal | (string & Record)>; article: _angular_core.InputSignal | (string & Record)>; limit: _angular_core.InputSignalWithTransform; items: _angular_core.Signal; handleClick(event: Event, item: LegacyFilter): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class MissingTermsComponent { readonly article: _angular_core.InputSignal; queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; router: Router; missingTerms: _angular_core.Signal<{ value: string; queryParams: { q: string; }; }[]>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const multiSelectionToolbarVariants: (props?: ({ variant?: "light" | "dark" | "glassy" | null | undefined; } & class_variance_authority_types.ClassProp) | undefined) => string; type MultiSelectionToolbarVariants = VariantProps; declare class MultiSelectionToolbarComponent { cn: typeof cn; readonly appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; readonly selection: { article?: _angular_core.Signal<_sinequa_atomic.Article | undefined> | undefined; id?: _angular_core.Signal | undefined; queryText?: _angular_core.Signal | undefined; queryName?: _angular_core.Signal | undefined; previewHighlights?: _angular_core.Signal<_sinequa_atomic_angular.PreviewHighlights | undefined> | undefined; assistantIdsToAttach: _angular_core.Signal; multiSelection: _angular_core.Signal<_sinequa_atomic.Article[]>; multiSelectCount: _angular_core.Signal; update: (newState: Partial<_sinequa_atomic_angular.SelectionState>) => void; clear: () => void; addArticleToMultiSelection: (article: _sinequa_atomic.Article) => void; removeArticleFromMultiSelection: (article: _sinequa_atomic.Article) => void; clearMultiSelection: () => void; } & _ngrx_signals.StateSource<{ article?: _sinequa_atomic.Article | undefined; id?: string | undefined; queryText?: string | undefined; queryName?: string | undefined; previewHighlights?: _sinequa_atomic_angular.PreviewHighlights | undefined; assistantIdsToAttach: string[]; multiSelection: _sinequa_atomic.Article[]; }>; readonly dialog: DialogService; readonly appFeatures: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined; readonly class: _angular_core.InputSignal; readonly variant: _angular_core.InputSignal<"light" | "dark" | "glassy" | null | undefined>; readonly updatedCollections: _angular_core.OutputEmitterRef; readonly count: _angular_core.Signal; readonly variants: _angular_core.Signal; readonly ids: _angular_core.Signal; readonly instanceId: _angular_core.Signal; readonly enabledUserInput: _angular_core.Signal; clearSelection: () => void; openCollectionDialog: () => Promise; openExportDialog: () => Promise<_sinequa_ui.DialogResult>; attachToAssistant: () => void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface NavRouteTab { display: string; wsQueryTab: string; path: string; icon: string; routerLink: string; queryName?: string; count?: number; } declare function injectRouteNavigation(path: Signal, showCount: Signal): { tabs: Signal; currentPath: Signal; searchText: Signal; }; interface NavTab { queryName?: string; wsQueryTab?: string; routerLink?: string | any[]; display?: string; path?: string; count?: number; icon?: any; } declare class NavbarTabsComponent { cn: typeof cn; class: _angular_core.InputSignal; readonly router: Router; protected appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; showCount: _angular_core.InputSignalWithTransform; /** * When enabled (default), tab labels are never clipped: tabs that do not fit * collapse into the ellipsis dropdown instead. Set to `false` to truncate * overflowing labels with an ellipsis inside their slot. * * @default true */ noTruncate: _angular_core.InputSignalWithTransform; minTabWidth: _angular_core.InputSignal; path: _angular_core.InputSignal; readonly nav: { tabs: _angular_core.Signal<_sinequa_atomic_angular.NavRouteTab[]>; currentPath: _angular_core.Signal; searchText: _angular_core.Signal; }; readonly visibleTabCount: _angular_core.WritableSignal; readonly moreTabs: _angular_core.Signal<_sinequa_atomic_angular.NavRouteTab[]>; /** * Minimum width applied to a tab (through the `--tab-min-width` CSS variable) * when labels are truncated (`noTruncate` is `false`), so a tab never shrinks * into an unusable sliver. An explicit `minTabWidth` input always wins. * * - tab with an icon: the icon (16px) plus the tab's horizontal padding (1.5rem) * - text-only tab: enough room for a few characters and the ellipsis */ protected tabMinWidth(hasIcon: boolean): string | undefined; readonly persistFiltersAcrossTabs: _angular_core.Signal; getQueryParamsHandling(): 'merge' | 'replace'; getQueryParams(tab: NavTab): Params | null | undefined; protected changeTab(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class SidebarNavComponent { readonly path: _angular_core.InputSignal; readonly showCount: _angular_core.InputSignalWithTransform; readonly nav: { tabs: _angular_core.Signal<_sinequa_atomic_angular.NavRouteTab[]>; currentPath: _angular_core.Signal; searchText: _angular_core.Signal; }; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class NoResultComponent { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare namespace Alert { enum Frequency { Daily = 0, Hourly = 1, Immediate = 2, Weekly = 3, Monthly = 4 } enum Days { None = 0, Monday = 1, Tuesday = 2, Wednesday = 4, Thursday = 8, Friday = 16, Saturday = 32, Sunday = 64, AllDays = 127, WeekDays = 31 } } type Alert = { name: string; description?: string; query: Query; timezone: string; timezoneOffset?: string; frequency: Alert.Frequency; days: Alert.Days; interval: number; index: number; times: string; active: boolean; combine: boolean; respectTabSelection: boolean; appQueryUrl?: string; }; type Bookmark = { id: string; queryName?: string; label?: string; source?: string; sourceIconClass?: string; author?: string; parentFolder?: string; parentFolderIconClass?: string; }; type AgentUserSettings = { isDebugMode: boolean; }; type SearchItem = { url: string; path: string; display: string; label?: string; filterCount?: number; date: string; queryParams?: QueryParams$1; }; type Basket = { name: string; description?: string; ids?: string[]; }; type UserSettingsState = { bookmarks: Bookmark[]; recentSearches: SearchItem[]; savedSearches: SearchItem[]; baskets: Basket[]; alerts: Alert[]; assistants: Record; collapseAssistant?: boolean; language?: string; userTheme?: 'dark' | 'light' | 'system'; agents?: AgentUserSettings; }; type SearchesConfig = { itemsPerPage?: number; showLoadMore?: boolean; routerLink?: string; }; type ArticleMetadata = { value: string; display?: string; count?: number; }; type AggregationListItem = (AggregationItem & TreeAggregationNode) & { icon?: string; iconPath?: string; }; type AggregationListEx = Aggregation & { items: AggregationListItem[]; }; type AggregationTreeEx = TreeAggregation & { items: AggregationListItem[]; }; type AggregationEx = AggregationListEx | AggregationTreeEx; type Autocomplete = { bookmarks?: number; recentSearches?: number; savedSearches?: number; }; type CJson = Record; type SideCJson = { name: string; data: CJson; _itemId?: number; preLogin?: boolean; }; type AppCJson = { data: CJson; customJSONs: SideCJson[]; }; type CSources = { collection?: Record; source?: Record; connector?: Record; }; type CFilterItem = { value: string; icon?: string; }; /** * Represents a custom filter configuration for data display and interaction. * * @property name - The unique name of the filter. * @property column - The associated column key for the filter. * @property icon - (Optional) Icon name or path to visually represent the filter. * @property display - (Optional) Display label for the filter. * @property searchable - (Optional) Indicates if the filter is searchable. * @property hidden - (Optional) Determines if the filter should be hidden from view. * @property homepage - (Optional) Specifies if the filter is shown on the homepage. * @property position - (Optional) Position of the filter, either 'left' or 'both'. * @property items - (Optional) Array of filter items for multi-value or nested filters. */ type CFilter = { name: string; column: string; icon?: string; display?: string; searchable?: boolean; expandedLevel?: number; hidden?: boolean; homepage?: boolean; position?: "left" | "both"; items?: CFilterItem[]; }; type CAggregationItem = AggregationListItem & { icon?: string; }; type CAggregation = Aggregation & { display?: string; icon?: string; items?: CAggregationItem[]; position?: "left" | "both"; }; type CJ = { name: string; data: { routes?: []; filters?: CFilter[]; }; }; type CFeatures = { allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; [key: string]: boolean | { [key: string]: boolean | string | string[] | undefined; } | undefined; }; type CConverter = { converter: string; format: string; primary?: boolean; display?: boolean; name: string; default?: boolean; conversion?: Conversion; }; type CFeedback = Partial<{ like: boolean; dislike: boolean; content: boolean; ui: boolean; lang: boolean; other: boolean; }>; type CJsonMint = CJson & { filters?: CAggregation[]; autocomplete?: Autocomplete; tabs?: Record; }>; sources?: CSources; features?: CFeatures; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: CFeatures; converters?: CConverter[]; feedback?: CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; type FilterDropdown = { label: string; aggregation: AggregationEx; icon?: string; firstFilter?: LegacyFilter; moreFiltersCount?: number; hidden?: boolean; }; type AggregationsState = { aggregations: Aggregation[]; }; declare const AggregationsStore: _angular_core.Type<{ aggregations: _angular_core.Signal; update: (aggregations: Aggregation[]) => void; updateAggregation: (aggregation: Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: Aggregation[]; }>>; declare function withAggregationsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { aggregations: Aggregation[]; }; props: {}; methods: { update: (aggregations: Aggregation[]) => void; updateAggregation: (aggregation: Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => Aggregation | undefined; }; }>; /** * Injection token for a list of facet names to display in the application. * * This token provides a default list of facet names including: * - Geo * - Company * - Person * - DocFormat * - Modified * - Size * - DocumentLanguages * - Concepts * * @constant * @type {InjectionToken} * * @deprecated use the filters JSON customization instead (admin) */ declare const AGGREGATIONS_NAMES_PRESET_DEFAULT: string[]; /** * Injection token for a list of facet names to display in the application. * This token uses the default preset list of facet names. * * @deprecated use the filters JSON customization instead (admin) */ declare const AGGREGATIONS_NAMES: InjectionToken; type CCWebServiceLabels = CCWebService & { privateLabelsField: string; publicLabelsField: string; }; type CCAppState = CCApp & { data: CJsonMint; customJSONs: SideCJson[]; auditEnabled?: boolean; dataSets?: string; revision?: number; runnableModels?: string; authorizationLevel?: string; columnMap?: Record; }; type AssistantConfiguration = Record; type AgentConfiguration = Record; interface AssistantDetails { modeSettings: { enabledUserInput: boolean; }; defaultValues: { service_id: string; systemPrompt: string; }; additionalWorkflowProperties: unknown; savedChatSettings: { display: boolean; }; } declare const AppStore: _angular_core.Type<{ name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal; sources: _angular_core.Signal; filters: _angular_core.Signal; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal; agents: _angular_core.Signal; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial) => void; getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => CCQuery | undefined; getQueryByIndex: (index: number) => CCQuery | undefined; getDefaultQuery: () => CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => Aggregation[]; getAuthorized: (filters: Pick[]) => Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>>; /** * Basic app management features */ declare function withAppFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }; props: { customizationJson: _angular_core.Signal; sources: _angular_core.Signal; filters: _angular_core.Signal; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal; agents: _angular_core.Signal; }; methods: { initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial) => void; getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => CCQuery | undefined; getQueryByIndex: (index: number) => CCQuery | undefined; getDefaultQuery: () => CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => Aggregation[]; getAuthorized: (filters: Pick[]) => Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; }; }>; type Extract = { id: string; text: SafeHtml; startIndex: number; relevanceIndex: number; textIndex: number; }; interface ApplicationState { ready: boolean; } declare const ApplicationStore: _angular_core.Type<{ ready: _angular_core.Signal; extracts: _angular_core.Signal>; extractsCount: _angular_core.Signal; update: (state: Partial) => void; updateReadyState: (value?: boolean) => void; updateExtracts: (id: string, extracts: Extract[]) => void; getExtracts: (id: string) => Extract[]; } & _ngrx_signals.WritableStateSource<{ ready: boolean; extracts: Map; }>>; /** * Enhances the application store with additional features. * * This function integrates several features into the application store, including state management, * computed properties, and various methods for updating and retrieving application state. * * Features included: * - State initialization with `intialState`. * - Methods for updating the application state: * - `updateAssistantReady`: Marks the assistant as ready. * - `updateReadyState`: Sets the application store's ready state to true. * * @returns A configured signal store feature with state, computed properties, and methods. */ declare function withApplicationFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { ready: boolean; }; props: {}; methods: { update: (state: Partial) => void; updateReadyState: (value?: boolean) => void; }; }>; /** * Provides features related to extracts within the application store. * * This function integrates state management, computed properties, and methods * for handling extracts in the application store. * * Features: * - State management for extracts. * - Computed property to get the count of extracts. * - Methods to update and retrieve extracts. * * @returns A configured signal store feature with state, computed properties, and methods for extracts. */ declare function withExtractsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { extracts: Map; }; props: { extractsCount: _angular_core.Signal; }; methods: { updateExtracts: (id: string, extracts: Extract[]) => void; getExtracts: (id: string) => Extract[]; }; }>; type PrincipalState = Principal & { userOverrideActive: boolean; state: 'initial' | 'loading' | 'loaded' | 'error'; }; declare const PrincipalStore: _angular_core.Type<{ id: _angular_core.Signal; id2: _angular_core.Signal; id3: _angular_core.Signal; id4: _angular_core.Signal; id5: _angular_core.Signal; name: _angular_core.Signal; email: _angular_core.Signal; description: _angular_core.Signal; longName: _angular_core.Signal; userId: _angular_core.Signal; fullName: _angular_core.Signal; isAdministrator: _angular_core.Signal; isDelegatedAdmin: _angular_core.Signal; editablePartition?: _angular_core.Signal | undefined; passwordExpirationDate?: _angular_core.Signal | undefined; param1: _angular_core.Signal; param2: _angular_core.Signal; param3: _angular_core.Signal; param4: _angular_core.Signal; param5: _angular_core.Signal; param6: _angular_core.Signal; param7: _angular_core.Signal; param8: _angular_core.Signal; param9: _angular_core.Signal; param10: _angular_core.Signal; userOverrideActive: _angular_core.Signal; state: _angular_core.Signal<"initial" | "loading" | "loaded" | "error">; allowUserOverride: _angular_core.Signal; isOverridingUser: _angular_core.Signal; initials: _angular_core.Signal; principal: () => Principal; initialize: () => Promise; } & _ngrx_signals.StateSource<{ id: string; id2: string; id3: string; id4: string; id5: string; name: string; email: string; description: string; longName: string; userId: string; fullName: string; isAdministrator: boolean; isDelegatedAdmin: boolean; editablePartition?: boolean | undefined; passwordExpirationDate?: string | null | undefined; param1: string; param2: string; param3: string; param4: string; param5: string; param6: string; param7: string; param8: string; param9: string; param10: string; userOverrideActive: boolean; state: "initial" | "loading" | "loaded" | "error"; }>>; declare function withPrincipalFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: {}; props: {}; methods: { initialize(): Promise; }; }>; type QueryParams = { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; declare const QueryParamsStore: _angular_core.Type<{ name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => QueryParams; addFilter: (filter: LegacyFilter, audit?: AuditEvents) => void; updateFilter: (newFilter: LegacyFilter, audit?: AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial, audit?: AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: LegacyFilter[]; id?: string | undefined; }>>; declare function withQueryParamsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: LegacyFilter[]; id?: string | undefined; }; props: {}; methods: { setFromUrl: (href: string) => void; _updateUrlQueryParams: (state: QueryParams$1, audit?: AuditEvents) => void; getQueryParams: () => QueryParams; addFilter: (filter: LegacyFilter, audit?: AuditEvents) => void; updateFilter: (newFilter: LegacyFilter, audit?: AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial, audit?: AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial | null; getQuery: () => _sinequa_atomic.Query; }; }>; type PreviewHighlights = { highlights: CustomHighlights[]; snippetId?: number; }; type SelectionState = { article?: Article$1; id?: string; queryText?: string; queryName?: string; previewHighlights?: PreviewHighlights; assistantIdsToAttach: string[]; }; /** * @constant * @name SelectionStore * @description * A store that manages the selection state of articles. It is provided in the root of the application and includes * development tools for easier debugging. The store maintains the state with the following properties: * - `article`: The selected article. * - `id`: The ID of the selected article. * - `queryText`: The query text associated with the selection. * - `queryName`: The query name associated with the selection. * @methods * - `update(article: Article, queryText?: string)`: Updates the store with a new article and optional query text. * - `updateQueryText(queryText: string)`: Updates the query text in the store. * - `clear()`: Clears the selection state, setting `article`, `id`, and `queryText` to `undefined`. */ declare const SelectionStore: _angular_core.Type<{ article?: _angular_core.Signal | undefined; id?: _angular_core.Signal | undefined; queryText?: _angular_core.Signal | undefined; queryName?: _angular_core.Signal | undefined; previewHighlights?: _angular_core.Signal | undefined; assistantIdsToAttach: _angular_core.Signal; multiSelection: _angular_core.Signal; multiSelectCount: _angular_core.Signal; update: (newState: Partial) => void; clear: () => void; addArticleToMultiSelection: (article: Article$1) => void; removeArticleFromMultiSelection: (article: Article$1) => void; clearMultiSelection: () => void; } & _ngrx_signals.StateSource<{ article?: Article$1 | undefined; id?: string | undefined; queryText?: string | undefined; queryName?: string | undefined; previewHighlights?: PreviewHighlights | undefined; assistantIdsToAttach: string[]; multiSelection: Article$1[]; }>>; declare function withSelectionFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { article?: Article$1 | undefined; id?: string | undefined; queryText?: string | undefined; queryName?: string | undefined; previewHighlights?: PreviewHighlights | undefined; assistantIdsToAttach: string[]; }; props: {}; methods: { update: (newState: Partial) => void; clear: () => void; }; }>; type MultiSelectionState = SelectionState & { multiSelection: Article$1[]; }; declare function withMultiSelectionFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { article?: Article$1 | undefined; id?: string | undefined; queryText?: string | undefined; queryName?: string | undefined; previewHighlights?: PreviewHighlights | undefined; assistantIdsToAttach: string[]; multiSelection: Article$1[]; }; props: { multiSelectCount: _angular_core.Signal; }; methods: { addArticleToMultiSelection: (article: Article$1) => void; removeArticleFromMultiSelection: (article: Article$1) => void; clearMultiSelection: () => void; }; }>; type CssVars = { light?: Record; dark?: Record; }; type ThemeScope = { [key: string]: { cssVars: CssVars; darkMode?: boolean; themeName: string; }; }; type ThemeStoreState = { scopes: ThemeScope; }; declare const ThemeStore: _angular_core.Type<{ scopes: _angular_core.Signal; loadDefaultTheme: (scope: string, darkMode?: boolean) => void; setCurrentTheme: (scope: string, themeName: string, darkMode?: boolean) => void; setDarkMode: (scope: string, darkMode: boolean) => void; } & _ngrx_signals.StateSource<{ scopes: ThemeScope; }>>; declare function withThemesFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { scopes: ThemeScope; }; props: {}; methods: { loadDefaultTheme: (scope: string, darkMode?: boolean) => void; setCurrentTheme: (scope: string, themeName: string, darkMode?: boolean) => void; setDarkMode: (scope: string, darkMode: boolean) => void; }; }>; /** * Processes the CSS variables for a given theme name. * * @param themeName - The name of the theme to process. * @returns An object containing the CSS variables for both light and dark themes. * @throws Will throw an error if the theme with the specified name is not found. */ declare function processCssVars(themeName: string): CssVars; /** * Converts an object of theme colors to CSS variables. * * @param colors - An object where keys are theme color names and values are the corresponding color values. * @returns An object where keys are CSS variable names and values are the corresponding color values. */ declare function themeColorsToCssVariables(colors: any): any; /** * Converts a camelCase theme color name to a CSS variable format. * * This function takes a camelCase string and transforms it into a CSS variable * name by inserting hyphens between lowercase and uppercase letters and converting * the entire string to lowercase. * * @param name - The camelCase theme color name to be converted. * @returns The corresponding CSS variable name in kebab-case. */ declare function themeColorNameToCssVariable(name: string): string; /** * Applies a set of CSS variables to a given HTML element. * * @param element - The HTML element to which the CSS variables will be applied. * @param cssVars - An optional record of CSS variable names and their corresponding values. */ declare function applyThemeToNativeElement(element: HTMLElement, cssVars?: Record): void; declare const UserSettingsStore: _angular_core.Type<{ bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean; toggleBookmark: (article: _sinequa_atomic.Article) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => _sinequa_atomic_angular.SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: _sinequa_atomic_angular.SearchItem[]; savedSearches: _sinequa_atomic_angular.SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>>; declare function withAlertsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { alerts: UserSettingsState["alerts"]; }; props: {}; methods: { deleteAlert: (index: number) => Promise; createAlert: (alert: Alert) => Promise; updateAlert: (alert: Alert, index: number) => Promise; updateAlerts: (alerts: Alert[]) => Promise; }; }>; declare function withAssistantFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { assistants: UserSettingsState["assistants"]; }; props: {}; methods: { updateAssistantSettings: (assistantSettings: UserSettingsState["assistants"]) => Promise; updateLanguage: (language: UserSettingsState["language"], auditEvents?: AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: UserSettingsState["collapseAssistant"], auditEvents?: AuditEvents) => Promise; }; }>; declare function withBasketsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { baskets: UserSettingsState["baskets"]; }; props: {}; methods: { deleteBasket: (index: number) => Promise; createBasket: (basket: Basket) => Promise; updateBaskets: (baskets: UserSettingsState["baskets"]) => Promise; updateBasket: (basket: Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; }; }>; declare function withBookmarkFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { bookmarks: UserSettingsState["bookmarks"]; }; props: {}; methods: { updateBookmarks: (bookmarks: UserSettingsState["bookmarks"], auditEvents?: AuditEvents) => Promise; bookmark: (article: Article$1, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial) => boolean; toggleBookmark: (article: Article$1) => Promise; }; }>; declare function withRecentSearchesFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { recentSearches: UserSettingsState["recentSearches"]; }; props: {}; methods: { deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: UserSettingsState["recentSearches"], auditEvents?: AuditEvents) => Promise; addCurrentSearch: (queryParams: QueryParams$1) => Promise; }; }>; declare function withSavedSearchesFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { savedSearches: UserSettingsState["savedSearches"]; }; props: {}; methods: { deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => SearchItem | undefined; }; }>; declare function withUserSettingsFeatures(): _ngrx_signals.SignalStoreFeature<_ngrx_signals.EmptyFeatureResult, { state: { bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: _sinequa_atomic_angular.SearchItem[]; savedSearches: _sinequa_atomic_angular.SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; alerts: _sinequa_atomic_angular.Alert[]; assistants: Record; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme?: "dark" | "light" | "system" | undefined; agents?: _sinequa_atomic_angular.AgentUserSettings | undefined; }; props: {}; methods: { initialize: () => Promise; reset: () => Promise; }; }>; type DocumentOffsets = { id: string; textLocations: { offset: number; length: number; }[]; }; type DocumentPages = { id: string; pages: { pageNumber: number; }[]; }; declare class QueryService { protected readonly http: HttpClient; private readonly appStore; private readonly queryParamsStore; private readonly transloco; protected readonly API_URL: string; protected readonly API_V2_URL: string; result: _angular_core.WritableSignal; audit?: AuditEvents; /** * Performs a search query. * * @param q - The partial query object. * @param includeQueryParams - Indicates whether to include query parameters automatically in the request. * @param audit - The audit events object. * @returns An observable that emits the search results. */ search(q?: Partial, includeQueryParams?: boolean, audit?: AuditEvents): Observable; /** * Performs a bulk search operation. * * @param q An array of Query objects representing the search queries. * @param audit An optional AuditEvents object for auditing purposes. * @returns An Observable that emits an array of Result objects. */ bulkSearch(q: Query[], audit?: AuditEvents): Observable; /** * Navigates to the specified page and returns the search result. * @param page - The page number to navigate to. * @returns A promise that resolves to the search result. */ gotoPage(page: number): void; /** * Get the pages associated to some text locations. * * @param docs - all documents offsets we want to get the pages from. * @returns An Observable that emits the found pages. */ getDocPages(docs: DocumentOffsets[]): Observable; /** * Get the page associated to a single text location. * * @param id - the document id. * @param offset - offset from the passage location. * @param length - length from the passage location. * @returns An Observable that emits the found page. */ getDocPage(id: string, offset: number, length: number): Observable; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } type AggEx = Aggregation & CFilter; declare const NON_SEARCHABLE_DEFAULTS: string[]; declare const NON_SEARCHABLE_COLUMNS: InjectionToken; declare class AggregationsService { protected readonly http: HttpClient; protected readonly queryService: QueryService; appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => Aggregation[]; getAuthorized: (filters: Pick[]) => Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; aggregationsStore: { aggregations: _angular_core.Signal; update: (aggregations: Aggregation[]) => void; updateAggregation: (aggregation: Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: Aggregation[]; }>; queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: LegacyFilter, audit?: AuditEvents) => void; updateFilter: (newFilter: LegacyFilter, audit?: AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial | null; getQuery: () => Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: LegacyFilter[]; id?: string | undefined; }>; nonSearchableColumns: string[]; protected API_URL: string; loadMore(query: Partial, aggregation: Aggregation, audit?: AuditEvents): Observable; open(query: Partial, aggregation: TreeAggregation, item: TreeAggregationNode): Observable; getAggregation(name: string, column: string | null): AggEx | null | undefined; processAggregation(name: string, column: string | null): AggEx | null | undefined; /** * Converts an `AggregationItem` to a `LegacyFilter`. * * @param item - The `AggregationItem` to be converted. * @returns A `LegacyFilter` object based on the provided `AggregationItem`. * * The function performs the following steps: * 1. Retrieves the field from the aggregation column. * 2. If the aggregation is a distribution, it parses the item value to extract filter expressions. * - The expressions are split by " AND " and mapped to filter objects. * - If two filters are found, they are combined with an "and" operator. * - If one filter is found, it is returned as is. * - Throws an error if the distribution expression cannot be parsed. * 3. If the item value is a string, it creates a filter with the "contains" operator. * 4. Otherwise, it creates a filter with the item value as a string, number, or boolean. * * @throws Will throw an error if the distribution expression cannot be parsed. */ toFilter(item: AggregationItem, field: string, name: string, isDistribution: boolean): LegacyFilter; private findNode; private replaceInTree; /** * Selects a node in a tree structure based on a given path. * * @param {TreeAggregationNode} node - The current node in the tree. * @param {string[]} path - An array of path strings used to determine which nodes to select. * @returns {TreeAggregationNode} - The updated node with the selection state applied. */ private selectNode; private flattenFilters; /** * Recursively opens parent nodes in a tree structure if any of their child nodes are selected or opened. * * @param node - The current tree node being processed. * @param path - An array representing the path to the current node. * @returns The updated tree node with parent nodes opened if necessary. */ private openParentNodes; getAuthorizedFilters(aggregations: Aggregation[] | undefined, includedFilters?: string[], excludedFilters?: string[], homepageOnly?: boolean): { field: string; column: string; name: string; }[]; /** * Determines whether a custom JSON filter refers to the given aggregation. * * Matches by `name` when it is defined, otherwise falls back to `column`, * resolving column/alias ambiguity through the app store's column map. * * @param filter - The filter object coming from the custom JSON. * @param agg - The aggregation returned by the backend. * @returns `true` if the filter refers to the aggregation. */ private matchesAggregation; private getFilterCriteria; private getHomepageFilterCriteria; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * @deprecated Use `fetchApp()` from `@sinequa/atomic` instead, which accepts an optional `appName` argument. * This service will be removed in a future version. */ declare class AppService { protected readonly http: HttpClient; protected readonly API_URL: string; /** * Retrieves the application configuration from the server. * * @param appName - The name of the application to fetch the configuration for. * * @returns {Observable} An observable that emits the application configuration. * * @remarks * This method constructs an HTTP GET request to fetch the application configuration * using the `app` parameter from the global configuration. If the request fails, it logs the * error and re-throws a normalized `Error` carrying the server's `errorMessage` when available * (e.g. "app not found: '...'"), so callers can surface the reason on the error page. * * @example * ```typescript * appService.getApp().subscribe(appConfig => { * console.log(appConfig); * }); * ``` */ getApp(appName?: string): Observable; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare const ROUTE_COMPONENTS: InjectionToken; type ComponentMapping = { path: string; component: Type; isRoot?: boolean; }; declare class ApplicationService { userSettingsStore: { bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean; toggleBookmark: (article: _sinequa_atomic.Article) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => _sinequa_atomic_angular.SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: _sinequa_atomic_angular.SearchItem[]; savedSearches: _sinequa_atomic_angular.SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>; principalStore: { id: _angular_core.Signal; id2: _angular_core.Signal; id3: _angular_core.Signal; id4: _angular_core.Signal; id5: _angular_core.Signal; name: _angular_core.Signal; email: _angular_core.Signal; description: _angular_core.Signal; longName: _angular_core.Signal; userId: _angular_core.Signal; fullName: _angular_core.Signal; isAdministrator: _angular_core.Signal; isDelegatedAdmin: _angular_core.Signal; editablePartition?: _angular_core.Signal | undefined; passwordExpirationDate?: _angular_core.Signal | undefined; param1: _angular_core.Signal; param2: _angular_core.Signal; param3: _angular_core.Signal; param4: _angular_core.Signal; param5: _angular_core.Signal; param6: _angular_core.Signal; param7: _angular_core.Signal; param8: _angular_core.Signal; param9: _angular_core.Signal; param10: _angular_core.Signal; userOverrideActive: _angular_core.Signal; state: _angular_core.Signal<"initial" | "loading" | "loaded" | "error">; allowUserOverride: _angular_core.Signal; isOverridingUser: _angular_core.Signal; initials: _angular_core.Signal; principal: () => _sinequa_atomic.Principal; initialize: () => Promise; } & _ngrx_signals.StateSource<{ id: string; id2: string; id3: string; id4: string; id5: string; name: string; email: string; description: string; longName: string; userId: string; fullName: string; isAdministrator: boolean; isDelegatedAdmin: boolean; editablePartition?: boolean | undefined; passwordExpirationDate?: string | null | undefined; param1: string; param2: string; param3: string; param4: string; param5: string; param6: string; param7: string; param8: string; param9: string; param10: string; userOverrideActive: boolean; state: "initial" | "loading" | "loaded" | "error"; }>; appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => CCQuery | undefined; getQueryByIndex: (index: number) => CCQuery | undefined; getDefaultQuery: () => CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; router: Router; titleService: Title; components: ComponentMapping[]; defaultComponent: _angular_core.Signal | undefined>; defaultLayoutComponent: _angular_core.Signal | undefined>; routerConfig: _angular_core.WritableSignal; /** * Initializes the application and creates routes if needed. * * This method performs the following actions: * 1. Calls the `initializeStores` function to initialize all the application's stores. * 2. Calls the `createRoutes` function to set up the application routes. * * @returns {Promise} A promise that resolves when the initialization and route creation are complete. */ initialize(withCreateRoutes?: boolean): Promise; /** * Initializes the application stores. * - Fetches the application configuration. * - Sets the fetched application configuration in the app store. * - Loads the user settings and logs the state of the user settings store. */ initializeStores(): Promise; /** * Creates dynamic routes based on the application's queries and custom JSON configurations. * * This method performs the following steps: * 1. Retrieves the queries and custom JSON data from the application state. * 2. Maps the queries to an array of objects containing query names and tabs. * 3. Throws an error if no queries are found. * 4. Retrieves route data from custom JSONs or falls back to default data. * 5. Creates routes for each tab in each query, or uses the query name if no tabs are found. * 6. Removes the current search route from the router configuration. * 7. Creates child routes based on the provided routes data or the first query's tabs. * 8. Updates the search route with the new child routes. * 9. Resets the router configuration with the new routes. * * @throws {Error} If no queries are found. */ private createRoutes; /** * Checks the validity of the provided routes against the first query configuration. * Filters out invalid routes and adds missing routes based on the first query's tabs. * * @param routes The array of route configurations to validate. * @param firstQueryConfig The configuration of the first query, including its name and tabs. * @returns An array of valid route configurations. * * @throws Will log an error for each invalid route found. * * @remarks * A route is considered invalid if it lacks both a `wsName` and a corresponding `wsQueryTab` * in the first query's tabs. Missing routes from the first query's tabs are added to ensure * all tabs are represented in the valid routes. */ private checkRoutesValidity; /** * Sets general application properties such as the document title and logo styles * based on the current general configuration from the application store. * * - Updates the document title if a general name is provided. * - Sets CSS custom properties for small and large logos if available in the configuration. * * @remarks * This method retrieves the general configuration from the application store * and applies the relevant properties to the document. */ private setGeneralApp; /** * Sets the document title with optional application name prefix. * * If the application general settings contain a name, the title will be formatted as * "{appName} - {title}". Otherwise, only the provided title will be used. * * @param title - The title to set for the document */ setTitle(title: string): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class AuditService { appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; app: _angular_core.Signal; protected readonly http: HttpClient; protected readonly router: Router; protected readonly API_URL: string; protected lastClickTime: number; /** * Notify the Sinequa server of a set of audit events * * @param auditEvents The audit events */ notify(auditEvents: AuditEvents): void; /** * It sends an audit event to the Audit Service. */ notifyLogin(): void; /** * Notify logout */ notifyLogout(): void; /** * Notify the Sinequa server of a document event * * @param evt The audit event type * @param doc The document (article) in question * @param resultId The resultid that contain the document * @param parameters Additional parameters */ notifyDocument(auditEventType: AuditEventType | AuditEventTypeValues | ({} & Record), doc: Article$1, resultsOrId: Result | string, parameters?: Record, rfmParameters?: Record): void; /** * Notify route change */ notifyRouteChange(url: string): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class AutocompleteService { readonly opened: _angular_core.WritableSignal; readonly injector: Injector; userSettingsStore: { bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean; toggleBookmark: (article: _sinequa_atomic.Article) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => _sinequa_atomic_angular.SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: _sinequa_atomic_angular.SearchItem[]; savedSearches: _sinequa_atomic_angular.SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>; appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; /** * Retrieves autocomplete items for the given text, max count for each * category handled by the service can be specified in the admin * * @param text Text to retrieve autocomplete items for * @returns An observable of an array of {@link Suggestion} arrays grouped by * suggestion queries configured in the admin */ getFromSuggestQueriesForText(text: string): Promise; /** * Retrieves autocomplete items for the given text from the user settings * * @param text Text to retrieve autocomplete items for * @param maxCount Maximum number of items to retrieve * @returns An observable of an array of {@link Suggestion} arrays grouped by * `recent-searches`, `saved-searches`, `bookmarks` from the user settings */ getFromUserSettingsForText(text: string, maxCount?: number | Autocomplete): Suggestion[]; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } type Options = { headers?: HttpHeaders | { [header: string]: string | string[]; }; context?: HttpContext; observe?: 'body' | 'events' | 'response'; params?: HttpParams | { [param: string]: string | number | boolean | ReadonlyArray; }; reportProgress?: boolean; responseType: 'arraybuffer' | 'blob' | 'text' | 'json'; withCredentials?: boolean; }; declare class JsonMethodPluginService { protected readonly http: HttpClient; protected readonly API_URL: string; /** * Call a JsonMethod plugin using an HTTP POST * * @param method The name of the JsonMethod plugin * @param query Parameters to pass to the plugin * @param options HTTP options for the request * @returns An observable of the plugin's return value */ post(method: string, query: U, options?: Options): Observable; /** * Call a JsonMethod plugin using an HTTP GET * * @param method The name of the JsonMethod plugin * @param query Parameters to pass to the plugin * @param options HTTP options for the request * @returns An observable of the plugin's return value */ get>(method: string, query: U, options?: Options): Observable; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class NavigationService { private readonly router; private readonly auditService; urlAfterNavigation: string | null; /** * Observable that emits events of type `NavigationEnd` from the Angular Router. * * This observable performs the following operations: * - Maps all router events to `RouterEvent`. * - Filters the events to only include instances of `NavigationEnd`. * - Taps into the event stream to extract the route name from the URL and notify the audit service of route changes, * excluding duplicate navigations. * - Updates the `urlAfterNavigation` property with the current URL after navigation. * - Shares the replayed value with a buffer size of 1 to ensure subscribers receive the latest emitted value. * * @type Observable */ navigationEnd$: rxjs.Observable; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * Creates a debounced signal that updates its value after a specified timeout. * * @template T - The type of the signal value. * @param Signal input - The input signal whose value will be debounced. * @param number [timeOutMs=0] - The debounce timeout in milliseconds. Defaults to 0. * @returns Signal - A new signal that updates its value after the specified debounce timeout. * * @example * ```ts * const input = signal(''); * const debounced = debouncedSignal(input, 1000); * * contructor() { * effect(() => { * console.log(debounced()); * // will log the input value after 1 second of inactivity. * }); * } * ... * * ``` */ declare function debouncedSignal(input: Signal, timeOutMs?: number): Signal; declare class InlineWorker { private readonly worker; private onMessage; private onError; constructor(func: () => void); postMessage(data: unknown): void; onmessage(): Observable; onerror(): Observable; terminate(): void; } /** * Retrieves the query name from the current route. * * @remarks * This function must be used within an injection context. * * This function traverses the route tree recursively to find the query name. * It first checks for a query parameter `t` in the route's snapshot. If the query name is not found * in the route data, it attempts to find it in the child routes of the "search" route. * If the query name is still not found, it falls back to the `queryName` defined in the route's data. * * @returns {string | undefined} The query name if found, otherwise `undefined`. */ declare function getQueryNameFromRoute(): string | undefined; /** * Builds a query object based on the provided partial query. * If any properties are missing in the partial query, default values are used. * * @remarks * This function must be used within an injection context. * * @param query - The partial query object. * @returns The complete query object. */ declare function buildQuery(query?: Partial): Query; /** * Retrieves the current path from the Angular `ActivatedRoute` service. * * @returns {string | undefined} The current path as a string, or `undefined` if the path cannot be determined. */ declare function getCurrentPath(): string | undefined; /** * Retrieves the current query name based on the current path and router configuration. * * This function asserts that it is being called within an injection context and then * uses Angular's dependency injection to get the router configuration. It matches the * current path against the router's configuration to find the corresponding query name. * * @returns {string | undefined} The name of the current query if found, otherwise undefined. */ declare function getCurrentQueryName(): string | undefined; type ThemeBodyHookParameters = { scope: string; theme: string; }; declare function withThemeBodyHook(app: ApplicationRef, params: ThemeBodyHookParameters | undefined): ApplicationRef; declare const THEMES: { name: string; id: string; private: boolean; colors: { 'button-primary-background': string; background: string; foreground: string; card: string; 'card-foreground': string; active: string; 'active-foreground': string; 'active-background': string; primary: string; 'primary-foreground': string; secondary: string; 'secondary-foreground': string; muted: string; 'muted-foreground': string; accent: string; 'accent-foreground': string; destructive: string; 'destructive-foreground': string; border: string; input: string; ring: string; }; colorsDark: { background: string; foreground: string; card: string; 'card-foreground': string; active: string; 'active-foreground': string; 'active-background': string; primary: string; 'primary-foreground': string; secondary: string; 'secondary-foreground': string; muted: string; 'muted-foreground': string; accent: string; 'accent-foreground': string; destructive: string; 'destructive-foreground': string; border: string; input: string; ring: string; }; }[]; type Theme = (typeof THEMES)[number]; declare function withThemes(app: ApplicationRef, themes: Theme[]): ApplicationRef; /** * Signs the user in according to the resolved {@link globalConfig.authMode}. * * The mode is expected to be resolved beforehand (by `initializeAppConfig`, awaited in * `bootstrapApp`). This function clears any existing session, then: * - `credentials` → redirect to the login form; * - `sso` → re-probe the session and, only if it is genuinely gone, reload the page so the * browser/proxy performs the handshake (see {@link reauthenticateSso}); * - `oauth` / `saml` → delegate to `login()`, which redirects to the provider; * - `bearer` → delegate to `login()`; * - `unknown` → `login()` tries SSO silently then resolves to credentials; on failure the login * form is shown. * * @returns A promise resolving to a boolean indicating whether the user is authenticated. */ declare function signIn(): Promise; /** * Bootstraps the application by ensuring the user is authenticated and initializing the application. * * This function first attempts to sign in the user via `signIn()`. If authentication is successful, * it initializes the application (stores and, optionally, dynamic routes) through `ApplicationService` * and waits for the initialization to complete before resolving. Any errors during authentication or * initialization are logged to the console, but the returned promise never rejects. * * Note: this function relies on Angular's injection context, so it must be called within one * (e.g. from `provideAppInitializer`). * * @param options - Configuration options for the bootstrap process. * @param options.createRoutes - Whether to create routes during initialization. Defaults to `true`. * @returns A promise that resolves to `true` when the application has been fully initialized, * or `false` when the user is not authenticated or an error occurred. */ declare function bootstrapApp({ createRoutes }?: { createRoutes?: boolean | undefined; }): Promise; /** * Bootstraps the application by ensuring the user is authenticated and initializing the application. * * @deprecated Use {@link bootstrapApp} instead, and let it inject `ApplicationService` itself. * * Migration — in your `app.config.ts`, replace: * ```ts * // ❌ Deprecated: eagerly injecting ApplicationService in the factory constructs it (and its * // dependent stores/services) BEFORE bootstrapApp resolves the config, so services that build * // their API URL from `globalConfig.backendUrl` capture `undefined` (→ `/undefined/api/v1/...`). * provideAppInitializer(() => withBootstrapApp(inject(ApplicationService), { createRoutes: true })), * ``` * with: * ```ts * // ✅ bootstrapApp injects ApplicationService internally, AFTER initializeAppConfig() has set * // `backendUrl` and resolved the auth mode. * provideAppInitializer(() => bootstrapApp({ createRoutes: true })), * ``` * (Remove the now-unused `inject` / `ApplicationService` imports.) * * @param applicationService - Ignored; kept for backward compatibility. `ApplicationService` is * provided in root and injected internally by {@link bootstrapApp}, so the instance is the same. * Passing `inject(ApplicationService)` here is discouraged — see the migration note above. * @param options - Configuration options for the bootstrap process. * @param options.createRoutes - Whether to create routes during initialization. Defaults to `true`. * @returns A promise that resolves when the bootstrap process is complete, regardless of success or failure. */ declare function withBootstrapApp(_applicationService: ApplicationService, { createRoutes }?: { createRoutes?: boolean | undefined; }): Promise; /** * Executes an asynchronous callback function with error handling for HTTP requests. * * This utility function wraps a promise-returning callback and handles common HTTP errors, * such as 401 (Unauthorized) and 404 (Not Found). If an injector is provided and a 401 error occurs, * it can trigger additional logic (e.g., sign-in flow) within the given injection context. * * @template T The type of the value returned by the callback. * @param callback - An asynchronous function that returns a promise of type `T`. * @param injector - (Optional) An injector used to run additional logic in case of a 401 error. * @returns A promise that resolves to the result of the callback, or `undefined` if an error occurs. * * @example * import { withFetch } from '@sinequa/atomic-angular'; * * async function fetchData() { * return await withFetch(() => fetch('/api/data').then(res => res.json()), injector); * } */ declare function withFetch(callback: () => Promise, injector?: any): Promise; declare const PREVIEW_CONFIG: InjectionToken<{ allowWorker: boolean; }>; type PreviewEvents = "idle" | "loading" | "loaded" | "fetching" | "fetched" | "error" | "scrollTo"; declare class PreviewService { protected destroyRef: DestroyRef; protected readonly http: HttpClient; protected readonly injector: Injector; protected readonly API_URL: string; protected readonly applicationStore: { ready: _angular_core.Signal; extracts: _angular_core.Signal>; extractsCount: _angular_core.Signal; update: (state: Partial<_sinequa_atomic_angular.ApplicationState>) => void; updateReadyState: (value?: boolean) => void; updateExtracts: (id: string, extracts: Extract[]) => void; getExtracts: (id: string) => Extract[]; } & _ngrx_signals.WritableStateSource<{ ready: boolean; extracts: Map; }>; protected readonly selectionStore: { article?: _angular_core.Signal | undefined; id?: _angular_core.Signal | undefined; queryText?: _angular_core.Signal | undefined; queryName?: _angular_core.Signal | undefined; previewHighlights?: _angular_core.Signal<_sinequa_atomic_angular.PreviewHighlights | undefined> | undefined; assistantIdsToAttach: _angular_core.Signal; multiSelection: _angular_core.Signal; multiSelectCount: _angular_core.Signal; update: (newState: Partial<_sinequa_atomic_angular.SelectionState>) => void; clear: () => void; addArticleToMultiSelection: (article: Article$1) => void; removeArticleFromMultiSelection: (article: Article$1) => void; clearMultiSelection: () => void; } & _ngrx_signals.StateSource<{ article?: Article$1 | undefined; id?: string | undefined; queryText?: string | undefined; queryName?: string | undefined; previewHighlights?: _sinequa_atomic_angular.PreviewHighlights | undefined; assistantIdsToAttach: string[]; multiSelection: Article$1[]; }>; protected readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; protected readonly appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; protected readonly sanitizer: DomSanitizer; protected readonly queryService: QueryService; protected readonly auditService: AuditService; readonly totalPages: _angular_core.WritableSignal; readonly currentPage: _angular_core.WritableSignal; events: _angular_core.WritableSignal; DOMContentLoaded: _angular_core.WritableSignal; onMessage: Subject; worker: InlineWorker | undefined; allowWorker: boolean; highlights: _sinequa_atomic_angular.PreviewHighlight[]; previewData: PreviewData | undefined; protected iframe: Window | null | undefined; passageOffset: _angular_core.WritableSignal<{ id: string; offset: number; length: number; } | undefined>; highlightCategory: string; extracts: string[]; entities: string[]; abortController: AbortController; constructor(destroyRef: DestroyRef); /** * Handles incoming messages from a MessageEvent. * * @param event - The MessageEvent containing the message data. * * The function processes messages of type 'ready' and 'get-html-results'. * * - For 'ready' messages: * - Initializes the preview iframe with the app name and highlights. * - If preview data is available, retrieves HTML content based on the current selection. * * - For 'get-html-results' messages: * - Updates the application store with the extracted HTML results. * - If no extracts are found, updates the application store with an empty array. */ receiveMessage(event: MessageEvent): void; /** * Generates a preview of the document with the given ID, applying the specified query parameters, * custom highlights, and audit events. * * @param id - The unique identifier of the document to preview. * @param q - Partial query parameters to customize the preview request. * @param customHighlights - Optional array of custom highlights to apply to the preview. * @param audit - Optional audit events to merge with the default audit record. * @returns An Observable that emits the preview data. */ preview(id: string, q: Partial, customHighlights?: CustomHighlights[], audit?: AuditEvents): Observable; /** * Closes the preview with the specified ID and updates the audit log. * * @param id - The ID of the preview to close. * @param query - The partial query object used to retrieve the preview detail. */ close(id: string, query: Partial): void; /** * Previews an article in a new browser's tab. * * @param article - The article to preview. */ openExternal(article: Article$1): void; /** * Sets the iframe window object. * * @param iframe - The window object of the iframe or null to unset. */ setIframe(iframe: Window | null): void; /** * Sets the preview data and updates the highlight category based on the provided data. * * @param data - The preview data to be set. * * If the provided data contains highlights per category with 'matchingpassages' having values, * the highlight category is set to "matchingpassages". Otherwise, it is set to "extractslocations". */ setPreviewData(data: PreviewData): void; /** * Sends a message to the iframe if it exists. * * @param message - The message to be sent. It can be of any type. */ sendMessage(message: unknown): void; /** * Get preview id for an entity value for an index * @param entity the entity type (i.e. "geo") * @param value the entity value (i.e. "AUSTRALIA") * @param index the entity index from its list * @returns the html id */ getEntityId(entity: string, value: string, index: number): number | undefined; /** * Send a message to the prewiew iFrame with the required data to retrieve HTML content for a specific highlight category * * @param id - The unique identifier for the request. * @param highlightCategory - The category of highlights to retrieve. * @param previewData - The data containing highlights and their locations. */ retrieveHtmlContent(id: string, highlightCategory: string, previewData: PreviewData): void; /** * Sends a message to zoom in. * * This method triggers a "zoom-in" action by sending a message * with the specified action type. */ zoomIn(): void; /** * Sends a message to fit content to container. * * This method triggers a "zoom-fit" action by sending a message * with the specified action type. */ zoomFit(): void; /** * Sends a message to zoom out the preview. * * This method triggers a "zoom-out" action by sending a message * to the relevant service or component. */ zoomOut(): void; toggleAIDescription(value: boolean): void; /** * Toggles the highlights based on the provided flags for extracts and entities. * * @param extracts - A boolean flag indicating whether to include extracts highlights. * @param entities - A boolean flag indicating whether to include entities highlights. */ toggle(extracts: boolean, entities: boolean): void; getAuditPreviewDetail(id: string, q: Partial): { docid: string; rank: number; collection: string; source: string; resultid: string; querylang: string | undefined; querytext: string | undefined; filename: string | undefined; fileext: string | undefined; score: number | undefined; }; private fetchExtracts; private updateHighlightsFromWebServiceConfiguration; gotoPage(page: number): void; nextPage(): void; prevPage(): void; firstPage(): void; lastPage(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * @deprecated This service is deprecated and should not be used directly. Please use the PrincipalStore instead. */ declare class PrincipalService { /** * Retrieves the principal information from the server. * * @returns Observable An observable that emits the principal information. * * @remarks * Delegates to the SDK's fetchPrincipal so the request goes through atomic's auth handling * (credentials + authMode-aware noAutoAuthentication). On error it logs and returns EMPTY. * * @example * ```typescript * principalService.getPrincipal().subscribe(principal => { * console.log(principal); * }); * ``` */ getPrincipal(): Observable; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class SavedSearchesService { protected readonly userSettingsStore: { bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal; savedSearches: _angular_core.Signal; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean; toggleBookmark: (article: _sinequa_atomic.Article) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: SearchItem[]; savedSearches: SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>; protected readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; /** * Retrieves the list of saved searches from the user settings store. * * @returns {SearchItem[]} An array of saved searches. */ getSavedSearches(): SearchItem[]; /** * Saves the current search query to the user's saved searches. * * This method retrieves the current search text from the query parameters store. * If the search text is empty, it logs an error and exits. * Otherwise, it creates a new saved search object with the current URL, date, and search text. * * The new saved search is added to the beginning of the saved searches array. * If the array exceeds the maximum allowed storage, the oldest search is removed. * * Finally, the updated saved searches array is saved back to the user settings store, * and a success message is displayed to the user. * * @throws {Error} If saving an empty search is attempted. */ saveSearch(saveName?: string): void; /** * Updates the saved searches in the user settings store. * * @param savedSearches - An array of SearchItem objects to update. */ updateSavedSearches(savedSearches: SearchItem[]): void; /** * Deletes a saved search from the user settings store. * * @param index - The index of the saved search to delete. */ deleteSavedSearch(index: number): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } type SearchOptions = { appendFilters?: boolean; audit?: AuditEvents; }; /** * Service for performing search operations. * * @deprecated Use `QueryService` and `QueryParamsStore` instead. */ declare class SearchService { protected readonly http: HttpClient; private readonly router; private readonly route; private readonly queryService; result: Result; audit?: AuditEvents; protected readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; protected readonly userSettingsStore: { bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: AuditEvents) => Promise; bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean; toggleBookmark: (article: _sinequa_atomic.Article) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => _sinequa_atomic_angular.SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: _sinequa_atomic_angular.SearchItem[]; savedSearches: _sinequa_atomic_angular.SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>; protected readonly injector: Injector; protected readonly API_URL: string; /** * Executes a search operation with the given commands and options. * * @deprecated use `queryParamsStore` to update the query parameters and `queryService.search()` to perform the search. * * @param commands - An array of strings representing the search commands. * @param options - An optional object containing search options. * @param options.appendFilters - A boolean indicating whether to append existing filters to the search query. Defaults to true. * @param options.audit - An optional audit trail object to be stored in the navigation state. * * The method constructs query parameters based on the current state and the provided options, * then navigates to the specified commands with the constructed query parameters and audit trail. */ search(commands: string[], options?: SearchOptions): void; /** * Retrieves the search result based on the provided query. * * @deprecated use `queryService.search()` instead. * * @param q - A partial query object containing search parameters. * @returns An Observable of the search result. * * This method performs the following actions: * - Creates an audit event with the type "Search_Text" and the query text. * - Resets the audit property to undefined. * - Calls the search method of the queryService with the query, a flag to include the query name in records, and the audit event. * - Handles any errors by returning an empty Result object. * - Maps the search result to the service's result property. */ getResult(q: Partial): Observable; /** * Navigates to the specified page and returns the search result. * * @deprecated use queryService.gotoPage() instead. * * @param page - The page number to navigate to. * @returns A promise that resolves to the search result. */ gotoPage(page: number): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class SelectionService { private readonly route; private readonly router; private readonly location; private readonly selectionStore; queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; /** * Sets the current article in the selection store and optionally updates the query text. * If the provided article is undefined, it clears the current article. * * @param article - The article to set as the current article. If undefined, the current article is cleared. * @param withQueryText - A boolean indicating whether to update the query text in the selection store. Defaults to true. * * @returns void */ setCurrentArticle(article?: Article$1, withQueryText?: boolean): void; /** * Clears the current article selection from the selection store and * removes the article ID from the query parameters. * * @remarks * This method performs two main actions: * 1. Clears the current selection from the `selectionStore`. * 2. Removes the article ID from the query parameters to ensure * the URL does not reference the cleared article. * * @public */ clearCurrentArticle(): void; /** * Updates the article ID in the query parameters of the current route. * If the provided ID is undefined, it will remove the ID from the query parameters. * * @param id - The article ID to be set in the query parameters. If undefined, the ID will be removed. */ private updateArticleIdInQueryParams; /** * Clears the 'id' parameter from the current route's query parameters. * * This method creates a copy of the current query parameters, removes the 'id' parameter, * and then updates the browser's URL to reflect the change without reloading the page. * * @private */ private clearArticleIdFromQueryParams; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } type SelectionHistoryEvent = 'back' | 'new'; declare class SelectionHistoryService { readonly selectionHistoryEvent: EventEmitter; private readonly selectionService; private readonly selectionStore; private readonly history; constructor(); /** * Retrieves the index of the current selection. * * @returns {number} The index of the current selection, which is the last element in the history array. */ getCurrentSelectionIndex(): number; /** * Retrieves an article from the selection history at the specified index. * * @param index - The index of the article to retrieve. * @returns The article at the specified index, or `undefined` if the index is out of bounds. */ getSelection(index: number): Article$1 | undefined; /** * Retrieves the length of the history array. * * @returns {number} The number of entries in the history. */ getHistoryLength(): number; /** * Clears the selection history and resets the current article selection. * * This method performs the following actions: * - Empties the history array. * - Calls the `clearCurrentArticle` method on the `selectionService` to reset the current article selection. */ clearHistory(): void; /** * Navigates back in the selection history. * * Removes the most recent entry from the history. If the history is empty after this operation, * it returns `undefined`. Otherwise, it sets the current article to the last entry in the history, * triggers a 'back' event, and returns the last entry. * * @returns {Article | undefined} The last article in the history, or `undefined` if the history is empty. */ back(): Article$1 | undefined; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class TextChunkService { protected readonly http: HttpClient; protected readonly API_URL: string; /** * Retrieves text chunks based on the provided parameters. * * @param id - The ID of the record. * @param textChunks - An array of TextLocation objects representing the location of the text chunks. * @param highlights - An array of strings representing the highlights to be applied to the text chunks. * @param query - The query used to retrieve the text chunks. * @param leftSentencesCount - The number of sentences to include before the text chunks. * @param rightSentencesCount - The number of sentences to include after the text chunks. * @returns An Observable that emits an array of TextChunk objects. */ getTextChunks(id: string, textChunks: TextLocation[], highlights: string[], query: Query, leftSentencesCount: number, rightSentencesCount: number): Observable; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class UserProfileService { protected readonly API_URL: string; /** * Retrieves the user profile by user ID. * * @param id - The ID of the user. * @returns An Observable that emits an the UserProfile object. */ getUserProfile(userId: Signal): _angular_common_http.HttpResourceRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class PreviewNavigator { protected readonly preview: PreviewService; readonly total: _angular_core.Signal; readonly current: _angular_core.Signal; isFirst: () => boolean; isLast: () => boolean; goto(raw: string | number): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type SortingChoice = CCSortingChoice & { $isDesc?: boolean; }; declare class SortSelectorComponent { dropdown: _angular_core.Signal; readonly result: _angular_core.InputSignal; readonly position: _angular_core.InputSignal; readonly onSort: _angular_core.OutputEmitterRef; appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; readonly queryName: _angular_core.Signal; readonly sortOptions: _angular_core.Signal; readonly sort: _angular_core.Signal; readonly isSortingDesc: _angular_core.Signal; onSortOptionClicked(sort: SortingChoice): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class SourceComponent { readonly collection: _angular_core.InputSignal; readonly connector: _angular_core.InputSignal; private readonly appStore; readonly iconDetails: _angular_core.Signal<{ iconClass: string; iconPath?: string; }>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Directive to mark a child element for special processing. * This can be used to apply specific styles or behaviors to child elements. * Specifically, it can be used to mark elements that should be treated as children in a parent component. * Very useful for components that need to render child templates dynamically with `@for loop`. * * Example usage: * ```html * * Child Element * * ``` * This will allow the parent component to recognize the `` as a child element and apply any specific logic or styles defined in the parent component. */ declare class ChildMarkerDirective { template: TemplateRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Type defining the selection strategies available for article selection. * "replace": Replaces the current article in the selection. * "stack": Stacks the article on top of the current selection (used in drawer stacks). * "redirect": Redirects to a specified URL with the article ID. * "emit": Emits an event without changing the current selection. */ type SelectionStrategy = "replace" | "stack" | "redirect" | "emit"; /** * Directive that selects an article on click. * Used to handle click and enter key events to select an article based on the specified strategy. * * @remarks * This directive uses the DrawerStackService to manage article selection. * Drawer/DrawerStack/DrawerStackService are deprecated and will be removed in future versions. * * @remarks * This directive is deprecated. * * * @deprecated Use the `SelectArticleDirective` instead. */ declare class SelectArticleOnClickDirective { private readonly drawerStack; private readonly router; readonly article: _angular_core.InputSignal | undefined>; readonly strategy: _angular_core.InputSignal; readonly redirectUrl: _angular_core.InputSignal; readonly selected: _angular_core.OutputEmitterRef; onEnter(e: Event): void; onClick(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Directive that handles the behavior of showing a bookmark for an article. * * @remarks * This directive listens to mouse enter and mouse leave events to determine when to show the bookmark. * It also checks the user's settings to determine if the article is bookmarked. * * @example * ```html *
* ``` * * @deprecated The `BookmarkButtonComponent` use a css class for showing bookmarks. */ declare class ShowBookmarkDirective { mouseEnter(): void; mouseLeave(): void; protected bookmarkHovered: _angular_core.WritableSignal; userSettingsStore: { bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; bookmark: (article: Article$1, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial) => boolean; toggleBookmark: (article: Article$1) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => _sinequa_atomic_angular.SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: _sinequa_atomic_angular.SearchItem[]; savedSearches: _sinequa_atomic_angular.SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>; protected isBookmarked: _angular_core.Signal; readonly article: _angular_core.InputSignal | undefined>; readonly showBookmark: _angular_core.OutputEmitterRef; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Represents a directive that enables infinite scrolling behavior. * This directive listens for the intersection of the element with the viewport * and emits a `loadMore` event when the element becomes visible. * * @remarks * This directive requires the `IntersectionObserver` API to be available in the browser. * * @example * ```html *
* *
* ``` * */ declare class InfinityScrollDirective implements OnDestroy { private el; options: _angular_core.InputSignal; onScroll: _angular_core.OutputEmitterRef; private observer; constructor(el: ElementRef); ngOnDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } type KeyboardNavigationOnSelectionHandlers = { hideListbox?: boolean; resetSelection?: boolean; }; type KeyboardNavigatorOptions = { name?: string; optionSelector: string; direction?: 'horizontal' | 'vertical' | 'both'; selectOnFocus?: boolean; resetSelectionOnBlur?: boolean; onSelectionHandlers?: KeyboardNavigationOnSelectionHandlers; }; declare class KeyboardNavigatorDirective implements OnDestroy { readonly keyboardNavigator: _angular_core.InputSignalWithTransform; readonly listboxId: _angular_core.InputSignal; readonly onFocus: _angular_core.OutputEmitterRef; readonly onBlur: _angular_core.OutputEmitterRef; readonly onSelected: _angular_core.OutputEmitterRef; readonly ariaExpanded: _angular_core.WritableSignal; readonly activeDescendant: _angular_core.WritableSignal; private readonly renderer; private readonly listboxElement; private readonly items; private readonly hasItems; private readonly currentIndex; private readonly previousIndex; private readonly unlisteners; private readonly mutationObserver; constructor(); ngOnDestroy(): void; /** Attaches the listbox element based on the `listboxId`. */ private attachListboxElement; /** * Merges given option with default options. * @param {KeyboardNavigatorOptions} options - Options to merge with defaults. * @returns {KeyboardNavigatorOptions} Merged options. */ normalizeOptions(options: KeyboardNavigatorOptions): KeyboardNavigatorOptions; /** Focuses the listbox and selects the first item if configured to do so. */ focus(): void; /** Blurs the listbox, hiding it and resetting selection if configured to do so. */ blur(): void; /** * Moves selection to previous element in vertical and both navigation directions. * Does nothing if navigation direction is set to horizontal. */ up(): void; /** * Moves selection to next element in vertical and both navigation directions. * Does nothing if navigation direction is set to horizontal. */ down(): void; /** * Moves selection to first element in vertical and both navigation directions. * Does nothing if navigation direction is set to horizontal. */ pageUp(): void; /** * Moves selection to last element in vertical and both navigation directions. * Does nothing if navigation direction is set to horizontal. */ pageDown(): void; /** * Moves selection to previous element in horizontal and both navigation directions. * Does nothing if navigation direction is set to vertical. */ left(): void; /** * Moves selection to next element in horizontal and both navigation directions. * Does nothing if navigation direction is set to vertical. */ right(): void; /** * Moves selection to first element in horizontal and both navigation directions. * Does nothing if navigation direction is set to vertical. */ home(): void; /** * Moves selection to last element in horizontal and both navigation directions. * Does nothing if navigation direction is set to vertical. */ end(): void; /** * Selects the currently focused item and emits it. * Hides the listbox and resets selection if configured to do so. */ enter(): void; /** Does nothing. */ escape(): void; /** * Sets the listbox element based on the provided `listboxId`, expected to * be set via the `aria-controls` attribute. If the element is not found, * logs an error. */ private setListboxElement; /** * Sets the items in the listbox by querying for elements matching the `optionSelector`. * Cleans up previous listeners and hooks new ones to handle item clicks. * Resets the selection state. */ private setItems; /** Cleans up all event listeners that were added to the items. */ private cleanupListeners; /** Resets the selection state. */ resetSelection(): void; /** * Hooks click events on each item in the listbox, and registers a entry into * `unlisteners` for future cleanup. * `mousedown` event is used to ensure the click is registered before any blur events. */ private hookItemsClicks; /** * Handles item click events, updates the current index, emits the selected item, * and hides the listbox if configured to do so. * @param {HTMLElement} element - The clicked item element. * @param {number} index - The index of the clicked item. */ private itemClicked; /** * Moves the selection in the specified direction. * If `extreme` is true, it moves to the first or last item based on the direction. * If `extreme` is false, it wraps around the list. * @param {number} direction - The direction to move the selection: -1 for previous, 1 for next. * @param {boolean} extreme - Whether to move to the first or last item instead of wrapping around. * Defaults to false. */ private moveSelection; /** * Updates the active item in the listbox. * If there was a previously active item, it sets its `aria-selected` * attribute to `false`. Sets the `aria-selected` attribute on the currently * active item, and scrolls it into view. */ private updateActiveItem; /** * Shows the listbox by setting `aria-hidden` to `false` and updating the * `aria-expanded` state. */ private showListbox; /** * Hides the listbox by setting `aria-hidden` to `true` and updating the * `aria-expanded` state. */ private hideListbox; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Directive that opens an article on ctrl + enter. */ declare class OpenArticleOnCtrlEnterDirective { private readonly previewService; readonly article: _angular_core.InputSignal; onCtrlEnter(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Directive to be used on elements that should be counted as items in the * overflow manager. */ declare class OverflowItemDirective { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Directive to be used on the "more" trigger element. The overflow manager * reserves this element's size when not all items fit, so the last visible * item never overlaps it. Its position is not used for measurement. */ declare class OverflowStopDirective { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Directive that counts how many items fit inside the container and hides the * overflowing ones. The boundary is the container's own content edge, which * keeps the measurement correct even when the host lives inside a flex layout * (we never depend on a sibling's position). The stop element is used only to * reserve space for the "more" trigger when not all items fit. * * The directive applies `display: none` on the items that do not fit. * * You can specify a target element to observe for resize events, otherwise the * directive will observe the element itself. * * This directive cannot be used on `hostDirectives` as it needs access to the * DOM elements. To use is as a host directive, wrap it in a `ng-container` and * define a target. * * @input target - The target element to observe for resize events. * @input margin - Margin to add for calculating the overflow. * * @output count - The number of items that can fit before the stop element, * count is debounced to avoid multiple updates. * * @example * ```typescript * *
    * \@for (let item of [1, 2, 3, 4, 5]) { *
  • {{ item }}
  • * } *
* *
*
* ``` */ declare class OverflowManagerDirective { readonly items: _angular_core.Signal[]>; readonly stop: _angular_core.Signal | undefined>; readonly target: _angular_core.InputSignal; readonly margin: _angular_core.InputSignal; readonly direction: _angular_core.InputSignal<"horizontal" | "vertical">; /** * Always reserve the stop element's size, even when every item fits inside * the container. Use it when the stop trigger is permanently visible (e.g. * the "more" button also gives access to items that are never rendered in * the container), so the last item never overlaps it. */ readonly reserveStop: _angular_core.InputSignalWithTransform; readonly count: _angular_core.OutputEmitterRef; private readonly el; private readonly destroyRef; private readonly resizeObserver; private readonly itemsResizeObserver; private countSub; private _lastCount; constructor(); /** * Counts the number of items that can fit inside the container. * * The boundary is the container's own content edge (not the position of the * stop element). This is what makes the measurement robust when the host is * placed inside a flex layout: we never rely on a sibling staying where we * expect it. The stop element is only used for its *size*, to reserve space * for the "more" trigger when not all items fit. * * Emits the count if it has changed. */ countItems(): void; /** * Toggles the visibility of the items based on the count. * @param count - The number of items to keep visible. */ toggleToCount(count: number): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * Directive that selects an article on click. * Used to handle click and enter key events to select an article based on the specified strategy. * * @remarks * This directive replaces the deprecated `SelectArticleOnClickDirective`. */ declare class SelectArticleDirective { private selectionStore; private selectionService; private readonly router; readonly article: _angular_core.InputSignal | undefined>; readonly strategy: _angular_core.InputSignal; readonly redirectUrl: _angular_core.InputSignal; readonly selected: _angular_core.OutputEmitterRef; onEnter(e: Event): void; onClick(): void; private replace; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } /** * This directive is used to apply a theme to a native element based on the theme scope. */ declare class ThemeProviderDirective { readonly themeProvider: _angular_core.InputSignal; readonly host: ElementRef; readonly themeStore: { scopes: _angular_core.Signal<_sinequa_atomic_angular.ThemeScope>; loadDefaultTheme: (scope: string, darkMode?: boolean) => void; setCurrentTheme: (scope: string, themeName: string, darkMode?: boolean) => void; setDarkMode: (scope: string, darkMode: boolean) => void; } & _ngrx_signals.StateSource<{ scopes: _sinequa_atomic_angular.ThemeScope; }>; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵdir: _angular_core.ɵɵDirectiveDeclaration; } declare class SponsoredResultsComponent { /** * The directive used to mark the child template for the "Promoted" badge. * This allows users to customize the appearance of the badge. */ childElement: _angular_core.Signal; appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; queryParamStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; injector: Injector; /** * The maximum number of sponsored results to display. * This is set to 3 by default, but can be overridden by the `maxSponsoredResults` query parameter. */ slice: _angular_core.InputSignal; /** * Whether to display the "Promoted" badge next to sponsored results. * This is set to true by default, but can be overridden by the `displayPromoted` query parameter. */ displayPromoted: _angular_core.InputSignal; sponsoredLinks: _angular_core.Signal; readonly sponsoredResults: _angular_core.ResourceRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ThemeSelectorComponent { readonly scope: _angular_core.InputSignal; readonly showPrivate: _angular_core.InputSignal; readonly themes: _angular_core.Signal<{ name: string; id: string; private: boolean; colors: { 'button-primary-background': string; background: string; foreground: string; card: string; 'card-foreground': string; active: string; 'active-foreground': string; 'active-background': string; primary: string; 'primary-foreground': string; secondary: string; 'secondary-foreground': string; muted: string; 'muted-foreground': string; accent: string; 'accent-foreground': string; destructive: string; 'destructive-foreground': string; border: string; input: string; ring: string; }; colorsDark: { background: string; foreground: string; card: string; 'card-foreground': string; active: string; 'active-foreground': string; 'active-background': string; primary: string; 'primary-foreground': string; secondary: string; 'secondary-foreground': string; muted: string; 'muted-foreground': string; accent: string; 'accent-foreground': string; destructive: string; 'destructive-foreground': string; border: string; input: string; ring: string; }; }[]>; readonly selectedTheme: _angular_core.ModelSignal; readonly themeStore: { scopes: _angular_core.Signal<_sinequa_atomic_angular.ThemeScope>; loadDefaultTheme: (scope: string, darkMode?: boolean) => void; setCurrentTheme: (scope: string, themeName: string, darkMode?: boolean) => void; setDarkMode: (scope: string, darkMode: boolean) => void; } & _ngrx_signals.StateSource<{ scopes: _sinequa_atomic_angular.ThemeScope; }>; constructor(); selectTheme(theme: string): void; selectTheme(theme: Theme): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ThemeToggleComponent { readonly scope: _angular_core.InputSignal; readonly darkMode: _angular_core.ModelSignal; private readonly themeStore; constructor(); toggleDarkMode(status: boolean): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type Operator$1 = "all" | "exact" | "any" | "none" | "matches"; interface Filter$1 { column: string; alias: string; display?: string; items?: (AggregationItem | TreeAggregationNode)[]; } interface Tab$1 { path: string; display?: string; } declare class AdvancedFiltersComponent { private readonly queryParamsStore; private readonly appStore; private readonly router; private readonly route; private readonly formBuilder; private readonly transloco; private readonly syslangPipe; private readonly translocoPipe; sheetService: SheetService; selectData: { operator: string; display: string; placeholder?: string; }[]; protected readonly form: _angular_forms.FormGroup<{ content: _angular_forms.FormGroup<{ operator: _angular_forms.FormControl; value: _angular_forms.FormControl; }>; title: _angular_forms.FormGroup<{ operator: _angular_forms.FormControl; value: _angular_forms.FormControl; }>; }>; currentTab: _angular_core.WritableSignal; currentFilter: _angular_core.WritableSignal; appliedFilters: _angular_core.WritableSignal<{ column: string; values: DropdownItem[]; }[]>; suggestions: _angular_core.WritableSignal; aggregations: _angular_core.WritableSignal<(Aggregation | TreeAggregation)[]>; inputVariant: _angular_core.WritableSignal<"default" | "destructive">; tabs: _angular_core.Signal; filters: _angular_core.Signal; protected enableFieldedSearch: _angular_core.Signal; protected allowEmptySearch: _angular_core.Signal; text: string; constructor(); getFirstPageQuery(queryName: string): Promise; onTabChange(tab: string): void; onSearch(): void; /** Generate the LegacyFilter to add to the query */ private getFilter; /** Format content/title filters */ private formatFilter; getPlaceholder(key: string): string; /** Get applied filters for a column */ getItems(column: string): DropdownItem[]; /** add item to current selection */ addItem(item: DropdownItem, filter: Filter$1): void; /** remove item from current selection */ removeItem(item: DropdownItem, filter: Filter$1): void; /** Update suggestions on input focus */ setFilterFocus(value: string | null, filter: Filter$1): void; /** Update suggestions when typing */ onInputTyping(value: string | null): void; private setSuggestions; private getSuggestionItems; private getWithSubItems; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AggregationDateCustomRangeComponent { private readonly el; readonly lang: _angular_core.InputSignal; readonly min: _angular_core.InputSignal; readonly max: _angular_core.InputSignal; readonly datepicker: _angular_core.Signal; readonly dateSelected: _angular_core.OutputEmitterRef; constructor(destroyRef: DestroyRef); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AggregationDateDualPickersComponent { private readonly el; readonly lang: _angular_core.InputSignal; readonly min: _angular_core.InputSignal; readonly max: _angular_core.InputSignal; readonly datepickerStart: _angular_core.Signal; readonly datepickerEnd: _angular_core.Signal; readonly dateSelected: _angular_core.OutputEmitterRef; constructor(destroyRef: DestroyRef); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type DateRange = { from: string | null; to: string | null; }; declare class AggregationDateRangeDialogComponent { cn: typeof cn; readonly hasSelection: _angular_core.WritableSignal; readonly dialog: _angular_core.Signal; readonly customRange: _angular_core.Signal; readonly dualPickers: _angular_core.Signal; readonly min: _angular_core.InputSignal; readonly max: _angular_core.InputSignal; readonly lang: _angular_core.InputSignal; /** * Whether to use the date range picker or two separate date pickers for start and end dates. * The date range picker is used when the user can select a range of dates, while the separate date pickers are used when the user can only select a single * date (e.g., for "last week" or "last month" options). * * @defaultValue false */ readonly useDateRange: _angular_core.InputSignalWithTransform; readonly rangeSelected: _angular_core.OutputEmitterRef; open(): void; confirm(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type AggregationTitle = { label: string; icon?: string; }; declare class AggregationDateComponent { cn: typeof cn; dateRangeDialog: _angular_core.Signal; name: _angular_core.InputSignal; column: _angular_core.InputSignal; id: _angular_core.InputSignal; collapsible: _angular_core.InputSignal; collapsed: _angular_core.InputSignal; searchable: _angular_core.InputSignal; showFiltersCount: _angular_core.InputSignalWithTransform; readonly title: _angular_core.InputSignal; readonly displayEmptyDistributionIntervals: _angular_core.InputSignal; onSelect: _angular_core.OutputEmitterRef; onApply: _angular_core.OutputEmitterRef; onClear: _angular_core.OutputEmitterRef; isCollapsed: _angular_core.WritableSignal; expanded: _angular_core.Signal<"" | null>; protected readonly searchText: _angular_core.ModelSignal; private readonly searchInput; private readonly base; readonly aggregationsService: _sinequa_atomic_angular.AggregationsService; readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: LegacyFilter[]; id?: string | undefined; }>; readonly hasFilters: _angular_core.Signal; readonly destroyRef: _angular_core.DestroyRef; readonly allowCustomRange: boolean; readonly transloco: TranslocoService; protected readonly selection: _angular_core.WritableSignal; protected readonly validSelection: _angular_core.WritableSignal; readonly aggregation: _angular_core.Signal; readonly isEmpty: _angular_core.Signal; readonly items: _angular_core.Signal; protected readonly dateOptions: _angular_core.Signal<_sinequa_atomic.DateFilter[]>; protected readonly form: FormGroup<{ option: FormControl; customRange: FormGroup<{ from: FormControl; to: FormControl; }>; }>; protected today: Date; protected lang: _angular_core.WritableSignal; private readonly formValue; protected readonly customRangeFrom: _angular_core.Signal; protected readonly customRangeTo: _angular_core.Signal; constructor(); select(): void; apply(): void; clear(notify?: boolean): void; onHeaderClick(event: Event): void; protected selectAndOpenDialog(): void; protected onRangeSelected(range: DateRange): void; private updateForm; private toEndOfDay; private getFormValueFilter; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Component that allows users to select a date or a date range for filtering search results. * * @deprecated since version 4. Use `AggregationDateComponent` instead. */ declare class DateComponent extends AggregationDateComponent { static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AdvancedSearch { cn: typeof cn; readonly article: _angular_core.InputSignal; readonly previewStrategy: _angular_core.InputSignal; readonly selected: _angular_core.OutputEmitterRef; protected readonly selectionStore: { article?: _angular_core.Signal | undefined; id?: _angular_core.Signal | undefined; queryText?: _angular_core.Signal | undefined; queryName?: _angular_core.Signal | undefined; previewHighlights?: _angular_core.Signal<_sinequa_atomic_angular.PreviewHighlights | undefined> | undefined; assistantIdsToAttach: _angular_core.Signal; multiSelection: _angular_core.Signal; multiSelectCount: _angular_core.Signal; update: (newState: Partial<_sinequa_atomic_angular.SelectionState>) => void; clear: () => void; addArticleToMultiSelection: (article: Article$1) => void; removeArticleFromMultiSelection: (article: Article$1) => void; clearMultiSelection: () => void; } & _ngrx_signals.StateSource<{ article?: Article$1 | undefined; id?: string | undefined; queryText?: string | undefined; queryName?: string | undefined; previewHighlights?: _sinequa_atomic_angular.PreviewHighlights | undefined; assistantIdsToAttach: string[]; multiSelection: Article$1[]; }>; protected readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; protected readonly queryText: _angular_core.WritableSignal; queryName: _angular_core.Signal; protected executeSearch(): void; protected clearInput(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface MetadataNavigation { index: number; value: string; } declare class ArticleEntities { cn: typeof cn; protected readonly appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; protected readonly previewService: PreviewService; readonly article: _angular_core.InputSignal; protected readonly previewHighlights: _angular_core.Signal<{ name: string; entity: string; metadata: ArticleMetadata[]; }[] | undefined>; getMetadata(article: Partial>, entity: string): ArticleMetadata[]; navigation: _angular_core.WritableSignal; hovering: _angular_core.WritableSignal; hoverIndex: _angular_core.Signal; scrollTo(type: string | undefined, index: number, usePassageHighlighter?: boolean): void; private navigate; navigateNext(entity: string, data: ArticleMetadata): void; navigatePrev(entity: string, data: ArticleMetadata): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ArticleExtracts { cn: typeof cn; protected readonly destroyRef: DestroyRef; protected readonly applicationStore: { ready: _angular_core.Signal; extracts: _angular_core.Signal>; extractsCount: _angular_core.Signal; update: (state: Partial<_sinequa_atomic_angular.ApplicationState>) => void; updateReadyState: (value?: boolean) => void; updateExtracts: (id: string, extracts: Extract[]) => void; getExtracts: (id: string) => Extract[]; } & _ngrx_signals.WritableStateSource<{ ready: boolean; extracts: Map; }>; protected readonly previewService: PreviewService; readonly article: _angular_core.InputSignal; loading: _angular_core.WritableSignal; protected readonly extracts: _angular_core.WritableSignal; constructor(); scrollTo(type: string | undefined, index: number, usePassageHighlighter?: boolean): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ArticleLabels { protected readonly labels: { private: string; public: string; }; readonly article: _angular_core.InputSignal; readonly hasLabels: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ArticleSimilarDocuments { protected readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; readonly article: _angular_core.InputSignal; readonly strategy: _angular_core.InputSignal; readonly selected: _angular_core.OutputEmitterRef; queryName: _angular_core.Signal; readonly similarDocumentsResource: _angular_core.ResourceRef; protected readonly similarDocuments: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AlertDialog implements DialogInterface { private readonly queryService; private readonly queryParamsStore; private readonly userSettingsStore; readonly dialog: _angular_core.Signal; frequencies: Alert.Frequency[]; frequency: typeof Alert.Frequency; weekdays: { key: string; value: Alert.Days; }[]; index?: number; alert?: Alert; alertName: _angular_core.WritableSignal; alertFrequency: _angular_core.WritableSignal; alertDays: _angular_core.WritableSignal; alertTimes: _angular_core.WritableSignal; alertActive: _angular_core.WritableSignal; canUpdateQuery: _angular_core.WritableSignal; updateStatus: _angular_core.WritableSignal<"idle" | "updating" | "updated">; invalidForm: _angular_core.Signal; closed: _angular_core.OutputEmitterRef; open(index: number): void; showModal(index?: number): Promise; confirm(): Promise; private create; private update; dayChecked(day: Alert.Days): boolean; dayChange(event: Event, day: Alert.Days): void; updateQuery(): void; execute(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AlertsComponent { floating: PopoverComponent | null; private readonly userSettingsStore; modal: DialogService; readonly alertFormDialog: _angular_core.Signal; reordering: _angular_core.WritableSignal; protected alerts: _angular_core.Signal; tmpAlerts: Alert[]; query: Query; constructor(); onClick(index: number): void; createAlert(): void; deleteAlert(event: Event, index: number): void; reorder(): Promise; dropped(drop: CdkDragDrop): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type AuthView = "signin" | "changepassword" | "login" | "forgotpassword" | "signedout"; declare class AuthPageComponent { mode: _angular_core.InputSignal; view: _angular_core.WritableSignal; readonly username: _angular_core.WritableSignal; readonly alert: _angular_core.WritableSignal; private readonly route; /** * Default view derived from the route. The `/logout` route renders the "signed out" confirmation * (NOT the sign-in form): in external-auth modes the form would auto-restart the handshake and * re-authenticate the user, defeating the logout. Everything else defaults to the sign-in form. */ private routeView; constructor(); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ChangePasswordComponent { readonly success: _angular_core.OutputEmitterRef; readonly cancel: _angular_core.OutputEmitterRef; username: _angular_core.InputSignal; alert: _angular_core.InputSignal; redirectAfterSuccess: _angular_core.InputSignal; redirectAfterCancel: _angular_core.InputSignal; private readonly transloco; private readonly router; private readonly principalStore; private readonly applicationService; private readonly location; private readonly auditService; currentPassword: _angular_core.ModelSignal; newPassword: _angular_core.ModelSignal; confirmPassword: _angular_core.ModelSignal; pending: _angular_core.WritableSignal; errorMsg: _angular_core.WritableSignal; currentPasswordType: string; newPasswordType: string; confirmPasswordType: string; valid: _angular_core.Signal; confirmInvalid: _angular_core.Signal; readonly effectiveUsername: _angular_core.Signal; private clearLocalAuthState; changePassword(): Promise; onCancel(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Represents the LoginComponent class, which is responsible for handling the login functionality. * This component is used to authenticate users and manage the user's authentication status. */ declare class SignInComponent { private destroyRef; cn: typeof cn; config: Partial<{ app: string; backendUrl: string; autoOAuthProvider: string; autoSAMLProvider: string; bearerToken: string; loginPath: string; userOverride: { username: string; domain: string; }; userOverrideActive: boolean; authMode: _sinequa_atomic.AuthMode; useCredentials: boolean; useSSO: boolean; useSAML: boolean; logLevel: _sinequa_atomic.LogLevel; createRoutes: boolean; } & Record>; /** * True when authentication is handled outside the credentials form — i.e. by the * browser/proxy (`sso`) or by an auto-configured OAuth/SAML provider. In those modes * this screen shows a loader instead of a login form and initiates the handshake * automatically by calling `handleLogin()`. * * Note: the ambiguous `unknown` mode is intentionally excluded — it is resolved upstream * (in `login()`/`signIn()`) to either `sso` or `credentials` before this screen renders, * so reaching here in `unknown` should still show the form, never a dead-end loader. */ readonly externalAuth: boolean; class: _angular_core.InputSignal; readonly forgotPassword: _angular_core.OutputEmitterRef; username: _angular_core.ModelSignal; password: _angular_core.ModelSignal; credentials: _angular_core.Signal<{ username: string; password: string; }>; isValid: _angular_core.Signal; private readonly router; private readonly route; private readonly applicationService; private readonly principalStore; private readonly transloco; private readonly auditService; readonly authenticated: _angular_core.WritableSignal; readonly user: _angular_core.WritableSignal<{ id: string; id2: string; id3: string; id4: string; id5: string; name: string; email: string; description: string; longName: string; userId: string; fullName: string; isAdministrator: boolean; isDelegatedAdmin: boolean; editablePartition?: boolean | undefined; passwordExpirationDate?: string | null | undefined; param1: string; param2: string; param3: string; param4: string; param5: string; param6: string; param7: string; param8: string; param9: string; param10: string; userOverrideActive: boolean; state: "initial" | "loading" | "loaded" | "error"; }>; readonly expiresSoonNotified: _angular_core.WritableSignal; constructor(destroyRef: DestroyRef); private checkPasswordExpiresSoon; handleLogout(): Promise; handleLogin(): Promise; handleLoginWithCredentials(): Promise; handleBack(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Post-logout confirmation shown on the `/logout` route. * * Rendering this view (instead of the sign-in form) is essential for the external-auth modes * (`sso` / `oauth` / `saml`): the sign-in form auto-initiates the handshake when * `authMode` is external, so showing it on `/logout` would immediately re-authenticate the user * (a spinner that loops back in). This view gives a clear "signed out" state and a single explicit * action to sign in again. */ declare class SignedOutComponent { private readonly router; /** * Navigate to the login screen, which then drives the normal sign-in handshake. * * A `returnUrl` is required: in the external-auth modes the sign-in screen only navigates away * once the handshake completes IF a `returnUrl` is present (otherwise it stays on the loader). * We send the user back to the app root after signing in again. */ signInAgain(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class BookmarkButtonComponent { variant: _angular_core.InputSignal<"default" | "primary" | "secondary" | "destructive" | "ai" | "outline" | "none" | "accent" | "tertiary" | "ghost" | "light-accent" | "link" | "icon" | null | undefined>; size: _angular_core.InputSignal<"icon" | "xs" | "sm" | "md" | "lg" | null | undefined>; readonly article: _angular_core.InputSignal>; private readonly userSettingsStore; private readonly route; private readonly transloco; protected isBookmarked: _angular_core.Signal; protected title: _angular_core.Signal; bookmark(e: Event): Promise; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type BookmarksConfig = { itemsPerPage?: number; showLoadMore?: boolean; routerLink?: string; }; declare const BOOKMARKS_OPTIONS: BookmarksConfig; declare const BOOKMARKS_CONFIG: InjectionToken; declare class BookmarksComponent { floating: PopoverContentComponent | null; private readonly drawerStack; private readonly queryService; private readonly userSettingsStore; private readonly appStore; private readonly transloco; private destroyRef; options: _angular_core.InputSignal; config: BookmarksConfig; range: _angular_core.WritableSignal; protected bookmarks: _angular_core.Signal; paginatedBookmarks: _angular_core.Signal; hasMore: _angular_core.Signal; constructor(); onClick(bookmark: Bookmark): void; private performSecondSearch; onDelete(bookmark: Bookmark, e: Event): void; loadMore(e: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class DeleteCollectionDialog implements DialogInterface { readonly dialog: _angular_core.Signal; private readonly userSettingsStore; private readonly translocoService; collection: _angular_core.WritableSignal; index: _angular_core.WritableSignal; open(collection: Basket, index: number): void; deleteCollection(): Promise; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type CollectionsConfig = { itemsPerPage?: number; showLoadMore?: boolean; routerLink?: string; }; declare const COLLECTIONS_OPTIONS: CollectionsConfig; declare const COLLECTIONS_CONFIG: InjectionToken; declare class CollectionsComponent { floating: PopoverComponent | null; private readonly userSettingsStore; private readonly drawerStack; private readonly router; options: _angular_core.InputSignal; config: CollectionsConfig; range: _angular_core.WritableSignal; protected collections: _angular_core.Signal; paginatedCollections: _angular_core.Signal; hasMore: _angular_core.Signal; readonly deleteCollectionDialog: _angular_core.Signal; constructor(); onClick(collection: Basket): void; onDelete(collection: Basket, index: number, e: Event): void; loadMore(e: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class CollectionsDialog implements DialogInterface { readonly closed: _angular_core.OutputEmitterRef; readonly createInputElement: _angular_core.Signal | undefined>; readonly dialogElement: _angular_core.Signal; private readonly queryParamStore; private readonly userSettingsStore; readonly collection: _angular_core.WritableSignal; readonly article: _angular_core.WritableSignal; readonly newCollectionName: _angular_core.WritableSignal; readonly creating: _angular_core.WritableSignal; readonly removedFromCollection: _angular_core.WritableSignal; readonly addedToCollection: _angular_core.WritableSignal; readonly collections: _angular_core.Signal; readonly collectionsMap: _angular_core.WritableSignal>; open(article: Article$1 | Article$1[]): void; containsArticleByName(collectionName: string): boolean; containsArticle(collection: Basket): "all" | "some" | "none"; onCreate(): void; onClose(): Promise; addToCollection(collection: Basket, collectionIndex: number): Promise; createCollection(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** Boolean-valued feature flags from `CFeatures` (object-valued features are intentionally excluded). */ type BooleanFeatureKey = "allowChangePassword" | "editablepartition" | "advancedSearch" | "allowChatDrawer" | "filterLinkChildren" | "expandPreview" | "quickFilter" | "showAggregationItemCount" | "previewMultiConversion" | "persistFiltersAcrossTabs"; interface FeatureFlagDescriptor { key: BooleanFeatureKey; label: string; description: string; } interface FeatureFlagRow extends FeatureFlagDescriptor { enabled: boolean; } /** * Developer/QA tool that lists the application feature flags and lets you toggle them on the fly. * * Changes are applied **live** to the {@link AppStore}: every toggle rewrites the effective * `general.features` map so that the rest of the application — which reads features through * `appStore.general()?.features` — reacts immediately. This makes it possible to test how a * feature behaves without editing the customization JSON and reloading. * * Access is gated to administrators: the gate lives in the component itself (not in the caller) so * the dialog can always be opened, but a non-admin only sees an "admin only" notice — there is no * content to leak and no caller-side check to forget. "Admin" means `isAdministrator` or * `isDelegatedAdmin` on the {@link PrincipalStore}. * * Open it programmatically through the {@link DialogService}: * ```typescript * const modal = inject(DialogService); * modal.open(FeatureFlagsDialogComponent); * ``` */ declare class FeatureFlagsDialogComponent implements DialogInterface { private readonly appStore; private readonly principalStore; readonly dialog: _angular_core.Signal; readonly closed: _angular_core.OutputEmitterRef; /** The flag list and mutators are only available to administrators (see class doc). */ protected readonly isAdmin: _angular_core.Signal; protected readonly filter: _angular_core.WritableSignal; /** Snapshot of the features when the dialog was opened, used by {@link reset}. */ private readonly initialFeatures; /** Every flag row to display: the known catalog plus any extra boolean flag found in the live config. */ protected readonly flags: _angular_core.Signal; protected readonly visibleFlags: _angular_core.Signal; /** Whether the live features differ from the snapshot taken when the dialog opened. */ protected readonly modified: _angular_core.Signal; open(): void; protected setFeature(key: string, value: boolean): void; protected reset(): void; /** * Writes `features` back to the source that `general()` actually reads from: the `general` * side customization JSON when one exists, otherwise the inline `data.general`. We rewrite the * whole object because {@link AppStore.update} performs a shallow merge of the top-level state. */ private applyFeatures; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class OverrideUserDialogComponent implements DialogInterface { readonly dialog: _angular_core.Signal; private readonly appService; private readonly principalStore; readonly overrideUser: _angular_core.ModelSignal<{ username: string; domain: string; }>; open(): void; override(): void; handleOverrideUser(username?: string, domain?: string): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class ResetUserSettingsDialogComponent implements DialogInterface { readonly dialog: _angular_core.Signal; private readonly userSettingsStore; private readonly translocoService; open(): void; handleResetUserSettings(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class DidYouMeanComponent { result: _angular_core.InputSignal; protected spellingCorrectionMode: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined>; protected correction: _angular_core.Signal; protected original: _angular_core.Signal; readonly router: Router; private readonly queryParamsStore; selectCorrected(): void; selectOriginal(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Service to manage the state and behavior of a stack of drawers in the application. * It provides methods to open, close, and manage drawers, as well as to handle * interactions with a chat assistant drawer. * * @deprecated we do not use it anymore. */ declare class DrawerStackService { readonly isOpened: _angular_core.WritableSignal; readonly toggleTopDrawerExtension$: EventEmitter; readonly forceTopDrawerCollapse$: EventEmitter; readonly closeTopDrawer$: EventEmitter; readonly closeAllDrawers$: EventEmitter; readonly isChatOpened: _angular_core.WritableSignal; readonly openChatDrawer$: EventEmitter; readonly closeChatDrawer$: EventEmitter; readonly askAI$: EventEmitter; private readonly selection; private readonly selectionHistory; private readonly selectionStore; private readonly navigationService; private readonly backdropService; private readonly destroyRef; componentType?: Type; constructor(); /** * Sets current drawer stack status to open */ open(componentType?: Type): void; /** * Emits event to extend the top drawer */ extend(): void; /** * Emits event to close the top drawer, checks if history is empty, if so, * sets current drawer stack status to closed and clears history and current * selection */ close(): void; /** * Emits event to close the top drawer */ closeTop(): void; /** * Sets current drawer stack status to closed, clears history and emits event * to close all drawers * * @param keepDrawerOpen if true, do not trigger layout animation */ closeAll(keepDrawerOpen?: boolean): void; /** * Replace the current selection with the given article by closing all * drawers and opening the drawer with the new selection without triggering * layout animation * * @param article the article to replace the current selection with */ replace(article: Article$1 | undefined, withQueryText?: boolean): void; /** * Stack the given article by setting the current selection and opening the * drawer * * @param article the article to stack */ stack(article: Article$1 | undefined, withQueryText?: boolean): void; toggleAssistant(): void; openAssistant(): void; closeAssistant(keepDrawerOpen?: boolean): void; askAI(text: string): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * Service to manage the state and behavior of a drawer component. * It provides methods to open, close, extend, collapse, and toggle * the drawer and its extension state. * @deprecated we do not use it anymore. */ declare class DrawerService { readonly isOpened: _angular_core.WritableSignal; readonly isExtended: _angular_core.WritableSignal; private readonly backdrop; open(): void; close(): void; toggle(): void; extend(): void; collapse(): void; toggleExtension(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } /** * Each Drawer component has it's own drawer service to handle its state and link it to the drawer stack. */ /** * @deprecated we do not use it anymore. */ declare class DrawerComponent { drawerOpened: _angular_core.WritableSignal; drawerExtended: _angular_core.WritableSignal; drawerGridTemplateColumns: string; mouseMove(event: MouseEvent): void; mouseDown(event: MouseEvent): void; mouseUp(): void; drawerHandle: _angular_core.Signal | undefined>; readonly drawer: DrawerService; protected readonly drawerStack: DrawerStackService; protected readonly element: any; protected readonly selectionHistory: SelectionHistoryService; private isSliding; private defaultDrawerGridTemplate; constructor(); private disableAnimation; private enableAnimation; private resetGridTemplateColumns; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type Operator = "all" | "exact" | "any" | "none" | "matches"; interface Filter { column: string; alias: string; display?: string; items?: (AggregationItem | TreeAggregationNode)[]; } interface Tab { path: string; display?: string; } /** * Advanced filters drawer component allowing users to apply complex filters to their search queries. * It provides a user interface for selecting filter criteria, managing applied filters, * and executing searches with the specified filters. * * This component extends the base DrawerComponent and integrates with the application's * query parameters store and app store to manage filter states and search execution. * * @deprecated Use the `AdvancedFiltersComponent` component instead. */ declare class DrawerAdvancedFiltersComponent extends DrawerComponent { private readonly queryParamsStore; private readonly appStore; private readonly router; private readonly route; private readonly formBuilder; private readonly overlay; private readonly transloco; private readonly syslangPipe; private readonly translocoPipe; protected scrollStrategy: _angular_cdk_overlay.RepositionScrollStrategy; protected noop: _angular_cdk_overlay.NoopScrollStrategy; selectData: { operator: string; display: string; placeholder?: string; }[]; protected readonly form: _angular_forms.FormGroup<{ content: _angular_forms.FormGroup<{ operator: _angular_forms.FormControl; value: _angular_forms.FormControl; }>; title: _angular_forms.FormGroup<{ operator: _angular_forms.FormControl; value: _angular_forms.FormControl; }>; }>; currentTab: _angular_core.WritableSignal; currentFilter: _angular_core.WritableSignal; appliedFilters: _angular_core.WritableSignal<{ column: string; values: DropdownItem[]; }[]>; suggestions: _angular_core.WritableSignal; aggregations: _angular_core.WritableSignal<(Aggregation | TreeAggregation)[]>; inputVariant: _angular_core.WritableSignal<"default" | "destructive">; tabs: _angular_core.Signal; filters: _angular_core.Signal; protected enableFieldedSearch: _angular_core.Signal; protected allowEmptySearch: _angular_core.Signal; text: string; constructor(); getFirstPageQuery(queryName: string): Promise; onTabChange(tab: string): void; onSearch(): void; /** Generate the LegacyFilter to add to the query */ private getFilter; /** Format content/title filters */ private formatFilter; getPlaceholder(key: string): string; /** Get applied filters for a column */ getItems(column: string): DropdownItem[]; /** add item to current selection */ addItem(item: DropdownItem, filter: Filter): void; /** remove item from current selection */ removeItem(item: DropdownItem, filter: Filter): void; /** Update suggestions on input focus */ setFilterFocus(value: string | null, filter: Filter): void; /** Update suggestions when typing */ onInputTyping(value: string | null): void; private setSuggestions; private getSuggestionItems; private getWithSubItems; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Advanced Search Component * This component provides an advanced search interface with various panels for entities, extracts, labels, and similar documents. * * @deprecated Use `AdvancedSearch` component instead. */ declare class AdvancedSearchComponent { cn: typeof cn; readonly article: _angular_core.InputSignal; readonly previewStrategy: _angular_core.InputSignal; readonly selected: _angular_core.OutputEmitterRef; protected readonly selectionStore: { article?: _angular_core.Signal | undefined; id?: _angular_core.Signal | undefined; queryText?: _angular_core.Signal | undefined; queryName?: _angular_core.Signal | undefined; previewHighlights?: _angular_core.Signal<_sinequa_atomic_angular.PreviewHighlights | undefined> | undefined; assistantIdsToAttach: _angular_core.Signal; multiSelection: _angular_core.Signal; multiSelectCount: _angular_core.Signal; update: (newState: Partial<_sinequa_atomic_angular.SelectionState>) => void; clear: () => void; addArticleToMultiSelection: (article: Article$1) => void; removeArticleFromMultiSelection: (article: Article$1) => void; clearMultiSelection: () => void; } & _ngrx_signals.StateSource<{ article?: Article$1 | undefined; id?: string | undefined; queryText?: string | undefined; queryName?: string | undefined; previewHighlights?: _sinequa_atomic_angular.PreviewHighlights | undefined; assistantIdsToAttach: string[]; multiSelection: Article$1[]; }>; protected readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; protected readonly queryText: _angular_core.WritableSignal; queryName: _angular_core.Signal; protected executeSearch(): void; protected clearInput(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Navbar component for drawers, providing navigation controls such as a back button. * It interacts with the DrawerStackService to manage drawer navigation. * * @deprecated we do not use it anymore. */ declare class DrawerNavbarComponent { protected readonly drawerStack: DrawerStackService; protected readonly drawerService: DrawerService; readonly isExtended: boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type DocumentTypeMap = { documentType: string; articleComponent: Type; previewComponent: Type; }; declare const COMPONENTS_FOR_DOCUMENT_TYPE: InjectionToken<(documentType?: string) => DocumentTypeMap>; /** * Component for previewing articles in a drawer. * It dynamically loads the appropriate preview component based on the article's document type. * It also manages the lifecycle of the preview, ensuring that resources are cleaned up when the drawer is closed. * * @extends DrawerComponent * @deprecated we do not use it anymore. */ declare class DrawerPreviewComponent extends DrawerComponent { private destroyRef; injector: Injector; appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; selectionStore: { article?: _angular_core.Signal<_sinequa_atomic.Article | undefined> | undefined; id?: _angular_core.Signal | undefined; queryText?: _angular_core.Signal | undefined; queryName?: _angular_core.Signal | undefined; previewHighlights?: _angular_core.Signal<_sinequa_atomic_angular.PreviewHighlights | undefined> | undefined; assistantIdsToAttach: _angular_core.Signal; multiSelection: _angular_core.Signal<_sinequa_atomic.Article[]>; multiSelectCount: _angular_core.Signal; update: (newState: Partial<_sinequa_atomic_angular.SelectionState>) => void; clear: () => void; addArticleToMultiSelection: (article: _sinequa_atomic.Article) => void; removeArticleFromMultiSelection: (article: _sinequa_atomic.Article) => void; clearMultiSelection: () => void; } & _ngrx_signals.StateSource<{ article?: _sinequa_atomic.Article | undefined; id?: string | undefined; queryText?: string | undefined; queryName?: string | undefined; previewHighlights?: _sinequa_atomic_angular.PreviewHighlights | undefined; assistantIdsToAttach: string[]; multiSelection: _sinequa_atomic.Article[]; }>; queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; previewService: PreviewService; getComponentsForDocumentType: (documentType?: string) => DocumentTypeMap; readonly articleId: _angular_core.InputSignal; queryText: _angular_core.Signal; readonly article: _angular_core.Signal<_sinequa_atomic.Article | undefined>; readonly previewType: _angular_core.Signal>; private readonly globalQueryName; constructor(destroyRef: DestroyRef); static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const DRAWER_COMPONENT: InjectionToken>; declare const DRAWER_STACK_MAX_COUNT: InjectionToken; /** * Component that manages a stack of drawers in the application. * It listens to the DrawerStackService for events to open, close, * and manage drawers, and dynamically creates and destroys drawer * components as needed. * * @deprecated we do not use it anymore. */ declare class DrawerStackComponent { drawerOpened: _angular_core.Signal; readonly drawerStackService: DrawerStackService; protected readonly selectionHistory: SelectionHistoryService; protected readonly viewContainer: ViewContainerRef; protected readonly drawerComponent: Type; protected readonly drawerStackMaxCount: number; protected readonly selectionHistory$: _angular_core.EventEmitter<_sinequa_atomic_angular.SelectionHistoryEvent>; protected readonly drawers: ComponentRef[]; get drawersLength(): number; constructor(destroyRef: DestroyRef); protected toggleAssistant(): void; private openTopDrawer; private closeTopDrawer; private closeAllDrawers; private collapseTopDrawer; private toggleTopDrawerExtension; private pushDrawer; private shiftDrawer; private unshiftDrawer; private closeAndDestroyDrawer; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type ExportQueryOptions = { model: ExportQueryModel; appName: string; query: Query; article?: Article$1; name?: string; selection?: string[]; }; declare class ExportService { protected readonly API_URL: string; protected readonly http: HttpClient; /** * Downloads a file based on the provided options and triggers a browser download. * * @param options - The options for the download operation. * @param options.model - The export query model containing web service, format, max count, and exported columns. * @param options.appName - The name of the application initiating the download. * @param options.query - The query object used for the export operation. * @param options.article - (Optional) The article associated with the export. * @param options.name - (Optional) The custom name for the downloaded file. If not provided, the name is extracted from the response headers. * @param options.selection - (Optional) An array of id of selected items to export. * @returns An observable that emits the HTTP response containing the file blob. * * @remarks * This method handles file downloads for both modern browsers and Internet Explorer. * For modern browsers, it creates a temporary anchor element to trigger the download. * For Internet Explorer, it uses `msSaveOrOpenBlob` to handle the download. * * @example * ```typescript * const options = { * model: { webService: 'service', format: 'csv', maxCount: 100, exportedColumns: [] }, * appName: 'MyApp', * query: myQuery, * name: 'exported-file.csv' * }; * exportService.download(options).subscribe(response => { * console.log('File downloaded successfully'); * }); * ``` */ download(options: ExportQueryOptions): Observable>; /** * Exports the current result. * * @param webService The configuration for the export web service. * @param query The query to export. * @param format The export format. * @param maxCount (Optional) The maximum number of exported rows. * @param exportedColumns (Optional) The columns to export, empty means all columns. * @param selection - (Optional) The list of id of selected items to export. * * @remarks If `selection` is provided, the type of export will be set to 'Selection'. */ exportResult(appName: string, webService: string, query: Query, format: ExportOutputFormat, results?: Article$1, maxCount?: number, exportedColumns?: string[], selection?: string[]): Observable>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class ExportDialog implements DialogInterface { cn: typeof cn; onExport: _angular_core.OutputEmitterRef; private appStore; readonly exportService: ExportService; readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; readonly dialog: _angular_core.Signal; private selection; readonly fromSelection: _angular_core.WritableSignal; exportableColumns: _angular_core.WritableSignal; readonly supportedFormats: ExportOutputFormat[]; format: _angular_core.ModelSignal; maxCount: _angular_core.ModelSignal; columnsToExport: _angular_core.ModelSignal; private destroyRef; open(selection?: string[]): void; onDownload(): void; onMaxCountInput(event: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const AuditFeedbackType = "UserFeedback_UserFeedback"; declare class FeedbackDialogComponent implements DialogInterface { readonly dialog: _angular_core.Signal; readonly auditService: AuditService; readonly appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; private readonly transloco; comment: _angular_core.ModelSignal; type: _angular_core.WritableSignal; open(type: string): void; submit(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface FeedbackMenu { type: string; icon: string; } declare class SearchFeedbackComponent { onClose: _angular_core.OutputEmitterRef; readonly feedbackDialog: _angular_core.Signal; pages: _angular_core.InputSignal; variant: _angular_core.InputSignal<"default" | "primary" | "secondary" | "destructive" | "ai" | "outline" | "none" | "accent" | "tertiary" | "ghost" | "light-accent" | "link" | "icon" | null | undefined>; solid: _angular_core.InputSignal; readonly auditService: AuditService; protected readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; private readonly transloco; private readonly appStore; liked: _angular_core.WritableSignal; disliked: _angular_core.WritableSignal; menus: FeedbackMenu[]; close(event: Event): void; like(): void; dislike(): void; openFeedbackDialog(type: string): void; private readonly effectiveConfig; visibleMenus: _angular_core.Signal; showButton: _angular_core.Signal; showLike: _angular_core.Signal; showDislike: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AggregationTreeComponent { #private; cn: typeof cn; class: _angular_core.InputSignal; id: _angular_core.InputSignal; name: _angular_core.InputSignal; column: _angular_core.InputSignal; collapsible: _angular_core.InputSignal; collapsed: _angular_core.InputSignal; searchable: _angular_core.InputSignal; showFiltersCount: _angular_core.InputSignalWithTransform; expandedLevel: _angular_core.InputSignalWithTransform; onSelect: _angular_core.OutputEmitterRef; onApply: _angular_core.OutputEmitterRef; onClear: _angular_core.OutputEmitterRef; virtualItems: _angular_core.Signal[]>; scrollElement: _angular_core.Signal | undefined>; selection: _angular_core.WritableSignal; isAllSelected: _angular_core.WritableSignal; searchText: _angular_core.ModelSignal; private readonly base; readonly aggregationsStore: { aggregations: _angular_core.Signal; update: (aggregations: Aggregation[]) => void; updateAggregation: (aggregation: Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: Aggregation[]; }>; readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: LegacyFilter[]; id?: string | undefined; }>; readonly appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; readonly aggregationsService: _sinequa_atomic_angular.AggregationsService; readonly injector: _angular_core.Injector; readonly destroyRef: _angular_core.DestroyRef; readonly debouncedSearchText: _angular_core.Signal; readonly normalizedSearchText: _angular_core.Signal; readonly suggests: _angular_core.WritableSignal<_sinequa_atomic.Suggestion[]>; readonly hasFilters: _angular_core.Signal; readonly filtersCount: _angular_core.Signal; readonly query: _sinequa_atomic.Query; readonly filters: _angular_core.WritableSignal; readonly showCount: _angular_core.Signal; readonly quickFilter: _angular_core.Signal; readonly isDate: _angular_core.Signal; readonly virtualizer: _tanstack_angular_virtual.AngularVirtualizer; readonly linkChildren: _angular_core.Signal; aggregation: _angular_core.Signal<_sinequa_atomic_angular.AggEx | null>; items: _angular_core.Signal; isEmpty: _angular_core.Signal; readonly searchedItems: _angular_core.Signal; constructor(); clear(): void; selectAll(): void; unselectAll(): void; apply(overrideFilters?: LegacyFilter[]): void; loadMore(): void; open(node: AggregationListItem): Promise; select(): void; protected treeItemName(item: AggregationListItem): string; protected isTreeItemFiltered(item: AggregationListItem, field: string | null | undefined): boolean; protected treeItemLevel(item: AggregationListItem): number; protected treeChildrenPath(item: AggregationListItem, parentPath: string[]): string[]; protected selectTreeItem(node: AggregationListItem, parent: AggregationListItem | null, e?: Event, updateChildren?: boolean): void; protected toggleTreeNode(e: Event, node: AggregationListItem): void; protected onTreeItemTextClick(node: AggregationListItem, parent: AggregationListItem | null, event: Event): void; protected getFilters(): LegacyFilter[]; protected getFiltersForTree(): LegacyFilter[]; protected getFiltersForList(): LegacyFilter[]; private getFlattenTreeItems; private addCurrentFiltersToItems; private verifySelected; private setSelected; private processAggregations; private selectVisually; private selectTreeItemChildren; private handleTreeChildSelect; private expandItems; private traverse; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AggregationListComponent { cn: typeof cn; class: _angular_core.InputSignal; id: _angular_core.InputSignal; name: _angular_core.InputSignal; column: _angular_core.InputSignal; collapsible: _angular_core.InputSignal; collapsed: _angular_core.InputSignal; searchable: _angular_core.InputSignal; showFiltersCount: _angular_core.InputSignalWithTransform; onSelect: _angular_core.OutputEmitterRef; onApply: _angular_core.OutputEmitterRef; onClear: _angular_core.OutputEmitterRef; scrollElement: _angular_core.Signal | undefined>; selection: _angular_core.WritableSignal; isAllSelected: _angular_core.WritableSignal; searchText: _angular_core.ModelSignal; private readonly base; readonly aggregationsStore: { aggregations: _angular_core.Signal; update: (aggregations: Aggregation[]) => void; updateAggregation: (aggregation: Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: Aggregation[]; }>; readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: LegacyFilter[]; id?: string | undefined; }>; readonly appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; readonly aggregationsService: _sinequa_atomic_angular.AggregationsService; readonly injector: _angular_core.Injector; readonly destroyRef: _angular_core.DestroyRef; readonly suggests: _angular_core.WritableSignal<_sinequa_atomic.Suggestion[]>; readonly hasFilters: _angular_core.Signal; readonly filtersCount: _angular_core.Signal; readonly query: _sinequa_atomic.Query; readonly filters: _angular_core.WritableSignal; readonly showCount: _angular_core.Signal; readonly quickFilter: _angular_core.Signal; readonly isDate: _angular_core.Signal; private readonly cdr; readonly virtualizer: _tanstack_angular_virtual.AngularVirtualizer; aggregation: _angular_core.Signal<_sinequa_atomic_angular.AggEx | null>; items: _angular_core.Signal; isEmpty: _angular_core.Signal; searchedItems: _angular_core.Signal; constructor(); clear(): void; selectAll(): void; unselectAll(): void; apply(): void; loadMore(): void; select(): void; protected listItemName(item: AggregationItem): string; protected isListItemFiltered(item: AggregationItem, field: string | null | undefined): boolean; protected selectListItem(item: AggregationItem, e?: Event): void; protected onListItemTextClick(item: AggregationItem, event: Event): void; protected getFilters(): LegacyFilter[]; private addCurrentFiltersToItems; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * The `AggregationComponent` is responsible for rendering the appropriate aggregation component based on the type of aggregation (date, tree, or list). It uses the `AggregationsService` to retrieve the aggregation data and determines which component to display based on the column type and whether it is a tree structure. The component also provides inputs for configuring its behavior, such as collapsibility, searchability, and showing filter counts. * * * @example * */ declare class AggregationComponent { cn: typeof cn; appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; aggregationsStore: { aggregations: _angular_core.Signal<_sinequa_atomic.Aggregation[]>; update: (aggregations: _sinequa_atomic.Aggregation[]) => void; updateAggregation: (aggregation: _sinequa_atomic.Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => _sinequa_atomic.Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: _sinequa_atomic.Aggregation[]; }>; aggregationsService: AggregationsService; aggregationDate: _angular_core.Signal; aggregationTree: _angular_core.Signal; aggregationList: _angular_core.Signal; class: _angular_core.InputSignal; /** * The name of the
element. When you provide the same id, the component work as an accordion * @defaultValue null */ id: _angular_core.InputSignal; /** * The name of the aggregation. This is a required input and must be provided for the component to function correctly. * @defaultValue undefined */ name: _angular_core.InputSignal; /** * The column associated with the aggregation. This is a required input and must be provided for the component to function correctly. * @defaultValue undefined */ column: _angular_core.InputSignal; /** * A boolean flag indicating whether we want to see the filters count when some is applied * This property is initialized to `false` by default. */ showFiltersCount: _angular_core.InputSignalWithTransform; /** * Determines whether the aggregation component can be collapsed or expanded. * When true, the component will display collapse/expand controls allowing users * to show or hide the aggregation content. * * @default false */ collapsible: _angular_core.InputSignal; /** * Controls whether the aggregation component is in a collapsed state. * When true, the component will be visually collapsed/hidden. * When false, the component will be expanded/visible. * * @default false */ collapsed: _angular_core.InputSignal; /** * A boolean flag indicating whether the component is searchable. * This property is initialized to `undefined` by default. * "Undefined" and not "false" because this input overrides the custom json settings */ searchable: _angular_core.InputSignal; expandedLevel: _angular_core.InputSignalWithTransform; /** * An output event that emits an array of selected `AggregationItem` objects when the user selects items in the aggregation component. This allows parent components to listen for selection changes and react accordingly, such as applying filters or updating the UI based on the selected items. */ onSelect: _angular_core.OutputEmitterRef; onApply: _angular_core.OutputEmitterRef; onClear: _angular_core.OutputEmitterRef; /** * A computed property that retrieves the items to be displayed in the aggregation component. It checks for the presence of date, tree, or list aggregation components and returns their respective items. If none of these components are present, it returns an empty array. This allows the component to dynamically display the appropriate items based on the type of aggregation being rendered. * * @returns An array of items to be displayed in the aggregation component. */ protected items: _angular_core.Signal; /** * A computed property that filters the items to include only those that are currently selected. It uses the `items` computed property to retrieve all items and then applies a filter to return only those with the `$selected` property set to true. This allows the component to easily access and manage the selected items for further processing, such as applying filters or updating the UI based on user selections. * * @returns An array of selected items from the aggregation component. */ protected selectedItems: _angular_core.Signal; protected aggregation: _angular_core.Signal<_sinequa_atomic_angular.AggEx | undefined>; /** * Checks if the specified column is a date filter. * * @param column The column name to check. * @returns True if the column is a date filter, false otherwise. */ protected isDate(column: string | undefined): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AggregationPanelComponent { id: _angular_core.InputSignal; collapsible: _angular_core.InputSignal; collapsed: _angular_core.InputSignal; isDate: _angular_core.InputSignal; isEmpty: _angular_core.InputSignal; aggregation: _angular_core.InputSignal; showFiltersCount: _angular_core.InputSignalWithTransform; filtersCount: _angular_core.InputSignal; hasFilters: _angular_core.InputSignal; selection: _angular_core.InputSignal; isAllSelected: _angular_core.InputSignal; searchText: _angular_core.ModelSignal; itemsLength: _angular_core.InputSignal; hasMore: _angular_core.InputSignal; searchedItemsLength: _angular_core.InputSignal; cleared: _angular_core.OutputEmitterRef; applied: _angular_core.OutputEmitterRef; allSelected: _angular_core.OutputEmitterRef; allUnselected: _angular_core.OutputEmitterRef; loadedMore: _angular_core.OutputEmitterRef; isCollapsed: _angular_core.WritableSignal; expanded: _angular_core.Signal<"" | null>; private readonly searchInput; private readonly isInPopover; constructor(); onHeaderClick(event: Event): void; onToggle(event: Event): void; protected clearSearch(e: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class AsideFiltersComponent { cn: typeof cn; class: _angular_core.InputSignal; position: _angular_core.InputSignal<"left" | "both" | undefined>; private readonly appStore; asideFilters: _angular_core.Signal; /** * Checks if the specified column is a date filter. * * @param column The column name to check. * @returns True if the column is a date filter, false otherwise. */ protected isDate(column: string): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type CFilterEx = CFilter & { name: string; count: number; isTree: boolean; disabled: boolean; hidden: boolean; legacyFilter?: LegacyFilter; }; declare class FilterButtonComponent { name: _angular_core.InputSignal; column: _angular_core.InputSignal; position: _angular_core.InputSignal; offset: _angular_core.InputSignal; expandedLevel: _angular_core.InputSignalWithTransform; protected variant: _angular_core.WritableSignal<"default" | "primary" | "secondary" | "destructive" | "ai" | "outline" | "none" | "accent" | "tertiary" | "ghost" | "light-accent" | "link" | "icon" | null | undefined>; protected filter: _angular_core.WritableSignal; popoverRef: _angular_core.Signal; protected nativeElement: any; protected aggregationsStore: { aggregations: _angular_core.Signal<_sinequa_atomic.Aggregation[]>; update: (aggregations: _sinequa_atomic.Aggregation[]) => void; updateAggregation: (aggregation: _sinequa_atomic.Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => _sinequa_atomic.Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: _sinequa_atomic.Aggregation[]; }>; protected queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: LegacyFilter[]; id?: string | undefined; }>; protected appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; constructor(); /** * Checks if the specified column is a date filter. * * @param column The column name to check. * @returns True if the column is a date filter, false otherwise. */ protected isDate(column: string): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class MoreButtonComponent { appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; nativeElement: any; aggregationsService: AggregationsService; count: _angular_core.InputSignalWithTransform; position: _angular_core.InputSignal; includedFilters: _angular_core.InputSignal; excludedFilters: _angular_core.InputSignal; aggregations: _angular_core.InputSignal; homepage: _angular_core.InputSignalWithTransform; totalFiltersCount: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class FiltersBarComponent { class: _angular_core.InputSignal; position: _angular_core.InputSignal; morePosition: _angular_core.InputSignal; aggregations: _angular_core.InputSignal; /** * Filters that should be included from the filters bar. * Providing it will hide any filters not contained in this list. * * Use the filter column names to specify which filters to include. * For example, to include the "geo" filter, set `includeFilters = ['Geo']`. */ includeFilters: _angular_core.InputSignal; /** * Filters that should be excluded from the filters bar. * This can be used to hide specific filters from the UI. * * Use the filter column names to specify which filters to exclude. * For example, to exclude the "geo" filter, set `excludeFilters = ['Geo']`. */ excludeFilters: _angular_core.InputSignal; /** * The number of filters to display before showing the "more filters" button. * This is used to limit the number of visible filters in the UI. * The default value is set by the FILTERS_BREAKPOINT injection token. */ filtersCount: _angular_core.InputSignal; /** * Input property that determines whether the "More Filters" button is displayed. * * Accepts a boolean value or a string that can be transformed to a boolean. * Uses the `booleanAttribute` transformer to ensure the value is interpreted as a boolean. * * @default true */ showMoreFiltersButton: _angular_core.InputSignalWithTransform; /** * When enabled, only the filters flagged with `homepage: true` in the "filters" custom JSON * are displayed. If no filter is flagged, the bar shows no filters. * * Accepts a boolean value or a string that can be transformed to a boolean. * * @default false */ homepage: _angular_core.InputSignalWithTransform; direction: _angular_core.InputSignal<"horizontal" | "vertical">; /** * The distance in pixels between the popover and its trigger element. * * @defaultValue 8px */ offset: _angular_core.InputSignal; expandedLevel: _angular_core.InputSignalWithTransform; /** * Event emitted when the clear filters button is clicked. * This event can be used to perform additional actions when filters are cleared. */ onClearFilters: _angular_core.OutputEmitterRef; /** * Event emitted when the clear basket button is clicked. * This event can be used to perform additional actions when the basket is cleared. */ onClearBasket: _angular_core.OutputEmitterRef; protected cn: typeof cn; protected readonly moreButtonRef: _angular_core.Signal; protected readonly filterButtonRefs: _angular_core.Signal; protected readonly overflowManagerRef: _angular_core.Signal; protected cdr: ChangeDetectorRef; protected BreakpointObserverService: BreakpointObserverService; protected appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large? /** * Filters that should be included from the filters bar. * Providing it will hide any filters not contained in this list. * * Use the filter column names to specify which filters to include. * For example, to include the "geo" filter, set `includeFilters = ['Geo']`. */: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large? /** * Filters that should be included from the filters bar. * Providing it will hide any filters not contained in this list. * * Use the filter column names to specify which filters to include. * For example, to include the "geo" filter, set `includeFilters = ['Geo']`. */: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large? /** * Filters that should be included from the filters bar. * Providing it will hide any filters not contained in this list. * * Use the filter column names to specify which filters to include. * For example, to include the "geo" filter, set `includeFilters = ['Geo']`. */: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; protected aggregationsStore: { aggregations: _angular_core.Signal; update: (aggregations: Aggregation[]) => void; updateAggregation: (aggregation: Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: Aggregation[]; }>; protected queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; protected el: ElementRef; protected readonly transloco: TranslocoService; protected readonly router: Router; protected destroyRef: DestroyRef; protected aggregationsService: AggregationsService; protected visibleFiltersCount: _angular_core.WritableSignal; protected hasFilters: _angular_core.Signal; protected currentBasket: _angular_core.Signal; protected hasAggregations: _angular_core.Signal; /** * The full list of authorized filters, NOT capped by `filtersCount`. * * This computed signal performs the following operations: * 1. Retrieves aggregations from either the component's aggregations input or the app store * 2. Filters aggregations based on the route's filter criteria configuration * 3. Excludes filters specified in the `excludeFilters` list * 4. If `includeFilters` is not empty, only includes filters present in that list * 5. Maps the filtered aggregations to objects containing only `name` and `column` properties */ private allAuthorizedFilters; /** * Computes the list of additional filters that can be displayed in the "more filters" popover. * * Derived from the FULL authorized list (not the one capped by `filtersCount`), so the * filters beyond `filtersCount` — which are never rendered in the bar — are still counted. * Otherwise, when every rendered filter fits in the container, this list would be empty and * the "more" button would be hidden even though more filters exist beyond the cap. * * This property manages the visibility of the "more filters" button in the UI. * * @returns An array of Aggregation objects representing the additional filters available. */ protected hasMoreFilters: _angular_core.Signal<(Aggregation | undefined)[]>; /** * The authorized filters rendered as buttons in the bar, limited to the number * specified by `filtersCount`. * * @returns An array of authorized filter objects, each containing `name` and `column` properties */ authorizedFilters: _angular_core.Signal<{ name: string; column: string; }[]>; /** * Whether some authorized filters exist beyond the `filtersCount` cap. * * Those filters are never rendered in the bar and are only reachable through * the "more" button, which is therefore permanently visible: the overflow * manager must always reserve its space so the last filter button never * overlaps it (`reserveStop`). */ protected hasCappedFilters: _angular_core.Signal; constructor(); /** * Clears all filters (included baskets) by invoking the clearFilters method on the queryParamsStore. * This method is typically used to reset the filter state to its default values. */ clearFilters(): void; /** * Clears the basket by invoking the clearBasket method on the queryParamsStore. * This method is typically used to reset the basket state to its default value. */ clearBasket(): void; /** * Adjusts the count of filters that can be displayed before the "more filters" option is shown. * * This method calculates the number of filter dropdowns that can fit in the available space * before the "more filters" button. It updates the `moreFilterCount` property with the number * of filters that can be displayed. If no filters are present, it sets the `moreFilterCount` * to the total number of filters. * */ protected adjustFiltersCount(count: number): void; /** * Handles click events on the filter bar component. * * triggers the `onClick` handler * for each filter button's popover reference, if available. * * @param event - The mouse event triggered by the user's click. */ handleClick(event: MouseEvent): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class MoreComponent { cn: typeof cn; count: _angular_core.InputSignal; includedFilters: _angular_core.InputSignal; excludedFilters: _angular_core.InputSignal; aggregations: _angular_core.InputSignal; homepage: _angular_core.InputSignalWithTransform; appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => Aggregation[]; getAuthorized: (filters: Pick[]) => Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; aggregationsStore: { aggregations: _angular_core.Signal; update: (aggregations: Aggregation[]) => void; updateAggregation: (aggregation: Aggregation) => void; clear: () => void; getAggregation: (name: string, kind?: "column" | "name") => Aggregation | undefined; } & _ngrx_signals.StateSource<{ aggregations: Aggregation[]; }>; queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; aggregationsService: AggregationsService; /** * Signal containing an array of extended filter objects. * * @remarks * This signal holds the current state of filters that can be applied to data. * The filters are of type CFilterEx[], which extends the base filter functionality. * */ filters: _angular_core.WritableSignal; /** * Computed property that returns an array of filters that are currently visible. * Filters out any filters where the `hidden` property is set to true. * * @returns An array of filters that are not hidden */ visibleFilters: _angular_core.Signal; constructor(); clearFilter(field: string): void; updateFilters(): void; /** * Checks whether there are active filters for the current aggregation column. * * if True, the clear button is shown. * * @returns {boolean} `true` if the filter count for the aggregation column is greater than 0, otherwise `false`. */ hasFilters(aggregation: Aggregation): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Injection token that indicates whether custom date ranges are allowed. * * @remarks * This token is used to configure the date component to allow users to select custom date ranges. * * @example * ```typescript * providers: [ * { provide: FILTER_DATE_ALLOW_CUSTOM_RANGE, useValue: false } * ] * ``` * * @public */ declare const FILTER_DATE_ALLOW_CUSTOM_RANGE: InjectionToken; declare const FILTERS_BREAKPOINT: InjectionToken; interface LabelsConfig { allowPublicLabelsCreation?: boolean; allowPublicLabelsModification?: boolean; privateLabelsField?: string; publicLabelsField?: string; defaultPublicLabels?: string; labelsAutoSuggestMaxCount?: string; labelsAutoSuggestWildcard?: string; } declare class LabelService { appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: CCWebService["webServiceType"]) => CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; hasAccess: _angular_core.WritableSignal; /** * Check user rights to verify if they can access labels handling * @returns if has the rights */ canHandleLabels(): Promise; /** * Get relevant config info from the labels web service * @returns the LabelsConfig or undefined if no rights */ getLabelsConfig(): Observable; /** * Fetch labels from string * @param prefix the string prefix to filter with * @param publicOnly whether they should be public or not * @param locale optional locale filtering * @returns list of label strings */ fetch(prefix: string, publicOnly?: boolean, locale?: string): Observable; /** * Add some labels to many documents * @param labelsToAdd list of labels to add * @param ids list of document id to add the label * @param publicOnly whether the operation should be public only * @returns a promise that resolves when the operation is complete */ add(labelsToAdd: string[], ids: string[], publicOnly?: boolean): Observable; /** * Remove some labels from many documents * @param labelsToRemove list of labels to remove * @param ids list of document id to add the label * @param publicOnly whether the operation should be public only * @returns a promise that resolves when the operation is complete */ remove(labelsToRemove: string[], ids: string[], publicOnly?: boolean): Observable; /** * Name some labels to a new name * @param labelsToRename list of labels to rename * @param newLabel the new label name * @param publicOnly whether the operation should be public only * @returns a promise that resolves when the operation is complete */ rename(labelsToRename: string[], newLabel: string, publicOnly?: boolean): Observable; /** * Delete some labels * @param labelsToDelete the labels to delete * @param publicOnly whether the operation should be public only * @returns a promise that resolves when the operation is complete */ delete(labelsToDelete: string[], publicOnly?: boolean): Observable; /** * Create some labels for a query * @param labelstoAdd the labels to create * @param query the query object to which the labels will be added * @param publicOnly whether the operation should be public only * @returns a promise that resolves when the operation is complete */ bulkAdd(labelstoAdd: string[], query: Query, publicOnly?: boolean): Observable; /** * Delete some labels from a query * @param labelsToRemove the labels to remove * @param query the query object to which the labels will be removed * @param publicOnly whether the operation should be public only * @returns a promise that resolves when the operation is complete */ bulkRemove(labelsToRemove: string[], query: Query, publicOnly?: boolean): Observable; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵprov: _angular_core.ɵɵInjectableDeclaration; } declare class LabelsEditDialog implements DialogInterface { private destroyRef; readonly dialog: _angular_core.Signal; labelService: LabelService; closed: _angular_core.OutputEmitterRef<{ type: DialogEvent; article: Article$1; }>; readonly article: _angular_core.ModelSignal; readonly labelsConfig: _angular_core.WritableSignal; constructor(destroyRef: DestroyRef); open(article: Article$1): void; close(event: DialogEvent): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type Article = Article$1 & { [key: string]: unknown; }; declare class MultiSelectLabelsComponent { injector: Injector; article: _angular_core.ModelSignal
; isPublic: _angular_core.InputSignal; allowModification: _angular_core.InputSignal; labelsField: _angular_core.InputSignal; protected anchor: _angular_core.WritableSignal; protected suggestedLabels: _angular_core.WritableSignal; protected labelInput: _angular_core.ModelSignal; protected debouncedLabelInput: _angular_core.Signal; protected popover: _angular_core.Signal | undefined>; protected popoverElement: _angular_core.Signal; protected labels: _angular_core.WritableSignal; protected hasError: _angular_core.WritableSignal; protected id: _angular_core.WritableSignal; constructor(); itemClicked(label: string): void; onInputClick(): void; onKeyDown(event: KeyboardEvent): void; fetchLabels(text: string, isPublic: boolean): Promise; /** * Adds a new label to the current list of labels and updates the associated article. * * This method performs the following steps: * 1. Updates the local labels state by appending the new label. * 2. Persists the new label to the backend, associating it with the current article. * 3. Refreshes the article's label data. * 4. Clears the label input field and resets the suggested labels. * * @param label - The label to be added. * @param isPublic - A boolean indicating whether the label is public or private. * @returns A promise that resolves once the label has been added and the article updated. */ addLabel(label: string, isPublic: boolean): Promise; /** * Removes a label from the current list of labels and updates the associated article. * * @param label - The label to be removed. * @param isPublic - A boolean indicating whether the label is public. * @returns A promise that resolves once the label is removed and the article is updated. */ removeLabel(label: string, isPublic: boolean): Promise; /** * Updates the article object by assigning the current labels to the specified labels field. * * This method retrieves the article object and the labels field dynamically, * then assigns the current labels to the corresponding field in the article. * * @remarks * Ensure that `this.article`, `this.labelsField`, and `this.labels` return valid values * before invoking this method to avoid runtime errors. * */ updateArticleWithLabels(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const RECENT_SEARCHES_OPTIONS: { itemsPerPage: number; showLoadMore: boolean; routerLink: string; }; declare const RECENT_SEARCHES_CONFIG: InjectionToken; declare class RecentSearchesComponent { /** * Represents the configuration options for recent searches. * This property is initialized using the `input` function with a `RecentSearchesConfig` type. */ options: _angular_core.InputSignal; protected config: SearchesConfig; protected readonly userSettingsStore: { bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal; savedSearches: _angular_core.Signal; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean; toggleBookmark: (article: _sinequa_atomic.Article) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: SearchItem[]; savedSearches: SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>; private readonly transloco; protected readonly range: _angular_core.WritableSignal; protected readonly recentSearches: _angular_core.Signal; protected readonly paginatedRecentSearches: _angular_core.Signal; protected readonly hasMore: _angular_core.Signal; constructor(); /** * Deletes a recent search item at the specified index. * @param index - The index of the item to delete. * @param e - The event object. */ onDelete(index: number): Promise; loadMore(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class SavedSearchDialog implements DialogInterface { private readonly savedSearchesService; protected readonly queryParamsStore: { name?: _angular_core.Signal | undefined; text?: _angular_core.Signal | undefined; action?: _angular_core.Signal<"" | "open" | "search" | "aggregate" | undefined> | undefined; select?: _angular_core.Signal<_sinequa_atomic.Select[] | undefined> | undefined; open?: _angular_core.Signal<_sinequa_atomic.Open[] | undefined> | undefined; page?: _angular_core.Signal | undefined; pageSize?: _angular_core.Signal | undefined; tab?: _angular_core.Signal | undefined; scope?: _angular_core.Signal | undefined; sort?: _angular_core.Signal | undefined; basket?: _angular_core.Signal | undefined; isFirstPage?: _angular_core.Signal | undefined; strictRefine?: _angular_core.Signal | undefined; globalRelevance?: _angular_core.Signal | undefined; questionLanguage?: _angular_core.Signal | undefined; questionDefaultLanguage?: _angular_core.Signal | undefined; spellingCorrectionMode?: _angular_core.Signal<_sinequa_atomic.SpellingCorrectionMode | undefined> | undefined; spellingCorrectionFilter?: _angular_core.Signal | undefined; documentWeight?: _angular_core.Signal | undefined; textPartWeights?: _angular_core.Signal | undefined; relevanceTransforms?: _angular_core.Signal | undefined; removeDuplicates?: _angular_core.Signal | undefined; queryId?: _angular_core.Signal | undefined; aggregations?: _angular_core.Signal | undefined> | undefined; orderBy?: _angular_core.Signal | undefined; groupBy?: _angular_core.Signal | undefined; neuralSearch?: _angular_core.Signal | undefined; path?: _angular_core.Signal | undefined; filters: _angular_core.Signal<_sinequa_atomic.LegacyFilter[]>; id?: _angular_core.Signal | undefined; setFromUrl: (href: string) => void; getQueryParams: () => { f?: string; p?: number; s?: string; t?: string; q?: string; b?: string; n?: string; }; addFilter: (filter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; updateFilter: (newFilter: _sinequa_atomic.LegacyFilter, audit?: _sinequa_atomic.AuditEvents) => void; removeFilter: (field?: string) => void; removeFilterByName: (name?: string, column?: string) => void; clearFilters: () => void; clearBasket: () => void; patch: (params: Partial<_sinequa_atomic.QueryParams>, audit?: _sinequa_atomic.AuditEvents) => void; getFilter: ({ field, name }: { field: string | undefined; name: string | undefined; }) => Partial<_sinequa_atomic.LegacyFilter & { count: number; }> | null; getQuery: () => _sinequa_atomic.Query; } & _ngrx_signals.StateSource<{ name?: string | undefined; text?: string | undefined; action?: "" | "search" | "open" | "aggregate" | undefined; select?: _sinequa_atomic.Select[] | undefined; open?: _sinequa_atomic.Open[] | undefined; page?: number | undefined; pageSize?: number | undefined; tab?: string | undefined; scope?: string | undefined; sort?: string | undefined; basket?: string | undefined; isFirstPage?: boolean | undefined; strictRefine?: boolean | undefined; globalRelevance?: number | undefined; questionLanguage?: string | undefined; questionDefaultLanguage?: string | undefined; spellingCorrectionMode?: _sinequa_atomic.SpellingCorrectionMode | undefined; spellingCorrectionFilter?: string | undefined; documentWeight?: string | undefined; textPartWeights?: string | undefined; relevanceTransforms?: string | undefined; removeDuplicates?: boolean | undefined; queryId?: string | undefined; aggregations?: (Record | string[]) | undefined; orderBy?: string | undefined; groupBy?: string | undefined; neuralSearch?: boolean | undefined; path?: string | undefined; filters: _sinequa_atomic.LegacyFilter[]; id?: string | undefined; }>; private readonly transloco; dialog: _angular_core.Signal; saveName: _angular_core.WritableSignal; readonly closed: _angular_core.OutputEmitterRef; open(text: string): void; confirm(): Promise; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const SAVED_SEARCHES_OPTIONS: SearchesConfig; declare const SAVED_SEARCHES_CONFIG: InjectionToken; declare class SavedSearchesComponent { options: _angular_core.InputSignal; protected config: SearchesConfig; protected readonly userSettingsStore: { bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal; savedSearches: _angular_core.Signal; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean; toggleBookmark: (article: _sinequa_atomic.Article) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: SearchItem[]; savedSearches: SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>; private readonly transloco; protected readonly range: _angular_core.WritableSignal; protected readonly savedSearches: _angular_core.Signal; protected readonly paginatedSearches: _angular_core.Signal; protected readonly hasMore: _angular_core.Signal; constructor(); onDelete(index: number): Promise; loadMore(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class UserProfileDialog implements DialogInterface { dialog: _angular_core.Signal; opened: _angular_core.WritableSignal; open(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare const SUPPORTED_LANGUAGES: readonly ["en", "fr"]; type SupportedLanguage = (typeof SUPPORTED_LANGUAGES)[number]; declare class UserProfileFormComponent { protected principalStore: { id: _angular_core.Signal; id2: _angular_core.Signal; id3: _angular_core.Signal; id4: _angular_core.Signal; id5: _angular_core.Signal; name: _angular_core.Signal; email: _angular_core.Signal; description: _angular_core.Signal; longName: _angular_core.Signal; userId: _angular_core.Signal; fullName: _angular_core.Signal; isAdministrator: _angular_core.Signal; isDelegatedAdmin: _angular_core.Signal; editablePartition?: _angular_core.Signal | undefined; passwordExpirationDate?: _angular_core.Signal | undefined; param1: _angular_core.Signal; param2: _angular_core.Signal; param3: _angular_core.Signal; param4: _angular_core.Signal; param5: _angular_core.Signal; param6: _angular_core.Signal; param7: _angular_core.Signal; param8: _angular_core.Signal; param9: _angular_core.Signal; param10: _angular_core.Signal; userOverrideActive: _angular_core.Signal; state: _angular_core.Signal<"initial" | "loading" | "loaded" | "error">; allowUserOverride: _angular_core.Signal; isOverridingUser: _angular_core.Signal; initials: _angular_core.Signal; principal: () => _sinequa_atomic.Principal; initialize: () => Promise; } & _ngrx_signals.StateSource<{ id: string; id2: string; id3: string; id4: string; id5: string; name: string; email: string; description: string; longName: string; userId: string; fullName: string; isAdministrator: boolean; isDelegatedAdmin: boolean; editablePartition?: boolean | undefined; passwordExpirationDate?: string | null | undefined; param1: string; param2: string; param3: string; param4: string; param5: string; param6: string; param7: string; param8: string; param9: string; param10: string; userOverrideActive: boolean; state: "initial" | "loading" | "loaded" | "error"; }>; protected userSettingsStore: { bookmarks: _angular_core.Signal<_sinequa_atomic_angular.Bookmark[]>; recentSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; savedSearches: _angular_core.Signal<_sinequa_atomic_angular.SearchItem[]>; baskets: _angular_core.Signal<_sinequa_atomic_angular.Basket[]>; assistants: _angular_core.Signal>; alerts: _angular_core.Signal<_sinequa_atomic_angular.Alert[]>; collapseAssistant?: _angular_core.Signal | undefined; language?: _angular_core.Signal | undefined; userTheme: _angular_core.Signal<"light" | "dark" | "system" | undefined>; agents: _angular_core.Signal<_sinequa_atomic_angular.AgentUserSettings | undefined>; isDebugMode: _angular_core.Signal; isDarkMode: _angular_core.Signal; updateBookmarks: (bookmarks: _sinequa_atomic_angular.UserSettingsState["bookmarks"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; bookmark: (article: _sinequa_atomic.Article, queryName?: string) => Promise; unbookmark: (id: string) => Promise; isBookmarked: (article: Partial<_sinequa_atomic.Article>) => boolean; toggleBookmark: (article: _sinequa_atomic.Article) => Promise; deleteRecentSearch: (index: number) => Promise; updateRecentSearches: (recentSearches: _sinequa_atomic_angular.UserSettingsState["recentSearches"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; addCurrentSearch: (queryParams: _sinequa_atomic.QueryParams) => Promise; deleteSavedSearch: (index: number) => Promise; updateSavedSearches: (savedSearches: _sinequa_atomic_angular.UserSettingsState["savedSearches"]) => Promise; getSavedSearch: (search: string) => _sinequa_atomic_angular.SearchItem | undefined; deleteBasket: (index: number) => Promise; createBasket: (basket: _sinequa_atomic_angular.Basket) => Promise; updateBaskets: (baskets: _sinequa_atomic_angular.UserSettingsState["baskets"]) => Promise; updateBasket: (basket: _sinequa_atomic_angular.Basket, index: number) => Promise; addToBasket: (name: string, ids: string | string[]) => Promise; removeFromBasket: (name: string, ids: string | string[]) => Promise; updateAssistantSettings: (assistantSettings: _sinequa_atomic_angular.UserSettingsState["assistants"]) => Promise; updateLanguage: (language: _sinequa_atomic_angular.UserSettingsState["language"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; updateAssistantCollapsed: (collapseAssistant: _sinequa_atomic_angular.UserSettingsState["collapseAssistant"], auditEvents?: _sinequa_atomic.AuditEvents) => Promise; initialize: () => Promise; reset: () => Promise; deleteAlert: (index: number) => Promise; createAlert: (alert: _sinequa_atomic_angular.Alert) => Promise; updateAlert: (alert: _sinequa_atomic_angular.Alert, index: number) => Promise; updateAlerts: (alerts: _sinequa_atomic_angular.Alert[]) => Promise; setDebugMode: (value: boolean) => Promise; setUserTheme: (userTheme: "dark" | "light" | "system") => Promise; toggleDarkMode: () => Promise; } & _ngrx_signals.StateSource<{ bookmarks: _sinequa_atomic_angular.Bookmark[]; recentSearches: _sinequa_atomic_angular.SearchItem[]; savedSearches: _sinequa_atomic_angular.SearchItem[]; baskets: _sinequa_atomic_angular.Basket[]; assistants: Record; alerts: _sinequa_atomic_angular.Alert[]; collapseAssistant?: boolean | undefined; language?: string | undefined; userTheme: "dark" | "light" | "system"; agents: _sinequa_atomic_angular.AgentUserSettings; }>; protected userProfileService: UserProfileService; protected appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; private readonly transloco; readonly createInputElement: _angular_core.Signal | undefined>; dataKeys: string[]; keys: _angular_core.Signal; formKeys: _angular_core.Signal; allowProfilePhoto: _angular_core.Signal; readonly initials: _angular_core.Signal; username: _angular_core.Signal; propertyToEdit: _angular_core.WritableSignal; value: _angular_core.ModelSignal; currentLanguage: _angular_core.ModelSignal; AllLanguages: { code: SupportedLanguage; label: string; icon: Type; }[]; changingPassword: _angular_core.WritableSignal; customData: _angular_core.Signal; readonly allowChangePassword: _angular_core.Signal; constructor(); protected userProfileResource: _angular_common_http.HttpResourceRef<_sinequa_atomic.UserProfile | undefined>; readonly userProfile: _angular_core.WritableSignal<_sinequa_atomic.UserProfile | undefined>; createUserProfile(): Promise; /** * On editing a value, we save its former value to set it back in case of error * * @param category data or customData * @param propertyName property name */ onEdit(category: "data" | "customData", propertyName: string): void; /** * On data property deletion, for now we make the property an empty string * * @param category data or customData * @param propertyName property name */ onDeleteData(category: "data" | "customData", propertyName: string): Promise; /** * Saving a data property * * @param category data or customData * @param propertyName property name */ onSaveData(category: "data" | "customData", propertyName: string): Promise; /** * Get the value of a data key * * @param category data or customData * @param key property key * @returns the value */ getDataValue(category: "data" | "customData", key: string): string | undefined; /** * TODO: how do we save the picture? * * @param event */ uploadAvatar(event: Event): void; /** * Change the app language */ changeLanguage(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } /** * Returns a guard function that checks if the user is authenticated. * If the user is not authenticated, it navigates to the login page. * @returns The guard function. */ declare function AuthGuard(): CanActivateFn; /** * Intercepts HTTP requests to add audit information if the request URL includes the API path. * * This interceptor checks if the request URL contains the specified API path from the global configuration. * If the request body is JSON serializable and not an instance of `HttpParams`, it adds additional audit information * to the request body using the `addAuditAdditionalInfo` function. * * @param request - The HTTP request to be intercepted. * @param next - The next handler in the HTTP request chain. * @returns The next handler in the HTTP request chain, potentially with modified request body. */ declare const auditInterceptorFn: HttpInterceptorFn; /** * Intercepts HTTP requests to add authentication headers and handle CSRF tokens. * * This interceptor checks if the user is logged in and adds necessary headers * to the request, including a CSRF token. If user override is active, it sets * the override user and domain headers instead. It also updates the CSRF token * from the response headers if present. * * @param request - The outgoing HTTP request. * @param next - The next handler in the HTTP request pipeline. * @returns An observable of the HTTP event stream. */ declare const authInterceptorFn: HttpInterceptorFn; /** * Interceptor function that modifies the request body by appending a "locale" parameter with the value "fr". * If the request body is of type FormData, the "locale" parameter is appended directly. * If the request body is an object, a new object is created with the "locale" parameter added. * * @param request - The HTTP request object. * @param next - The HTTP handler function. * @returns The modified request object. */ declare const bodyInterceptorFn: (request: HttpRequest, next: HttpHandlerFn) => rxjs.Observable<_angular_common_http.HttpEvent>; /** * Interceptor function that handles HTTP 401 errors by refreshing authentication and retrying the * original request once. For 403 errors, the error is propagated as a permanent auth failure. * * The retry happens ONLY when `signIn()` reports the user is authenticated, and AT MOST once per * request. Without these two guards a persistent 401 (credentials required, or an endpoint that * keeps rejecting even after a successful CSRF handshake) would retry endlessly. * * @param request - The HTTP request object. * @param next - The HTTP handler function. * @returns The response observable or error observable. */ declare const errorInterceptorFn: HttpInterceptorFn; /** * Intercepts HTTP requests and handles errors by displaying toast notifications. * * This interceptor checks if the request URL includes 'api/v1/audit.notify'. If it does, * the request is passed through without any modifications. For other requests, it catches * errors and displays a toast notification for specific HTTP status codes (400, 403, 500, 503). * * @param request - The outgoing HTTP request. * @param next - The next handler in the HTTP request pipeline. * @returns An observable that either passes the request through or handles errors with toast notifications. */ declare const toastInterceptorFn: HttpInterceptorFn; /** * The HighlightWordPipe class is a custom pipe in the Atomic Angular library. * It is used to highlight a specific word within a given text. * * @remarks * This pipe takes in a `value` string, a `word` string to highlight, and an optional `clipBy` number to limit the length of the highlighted text. * It returns an array of `HighlightWords.Chunk` objects representing the highlighted portions of the text. * * @example * ```html *
* ``` * */ declare class HighlightWordPipe implements PipeTransform { transform(value: string, word: string, clipBy?: number): HighlightWords.Chunk[]; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵpipe: _angular_core.ɵɵPipeDeclaration; } /** * Pipe that transforms a collection of strings into a corresponding Font Awesome icon class. * * This pipe uses the first element of the collection to determine the icon class * based on the source name. If the collection is empty or undefined, it returns * a default icon class. * * @deprecated This pipe is deprecated and will be removed in the future. * * @param collection - An array of strings representing the collection. * @returns A string representing the icon class. */ declare class SourceIconPipe implements PipeTransform { appStore: { name: _angular_core.Signal; description?: _angular_core.Signal | undefined; versionId: _angular_core.Signal; queries: _angular_core.Signal>; rfms: _angular_core.Signal>; indexes: _angular_core.Signal<{ _: _sinequa_atomic.CCIndex; } & Record>; lists: _angular_core.Signal>; webServices: _angular_core.Signal>; queryNames: _angular_core.Signal; labels: _angular_core.Signal; preview: _angular_core.Signal; autocomplete: _angular_core.Signal; sponsoredLinks: _angular_core.Signal; queryExport: _angular_core.Signal; queryRssEnabled: _angular_core.Signal; data: _angular_core.Signal & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }>; customJSONs: _angular_core.Signal<{ name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]>; apiVersion: _angular_core.Signal; workspaceApp: _angular_core.Signal; defaultQueryName: _angular_core.Signal; auditEnabled?: _angular_core.Signal | undefined; dataSets?: _angular_core.Signal | undefined; revision?: _angular_core.Signal | undefined; runnableModels?: _angular_core.Signal | undefined; authorizationLevel?: _angular_core.Signal | undefined; columnMap?: _angular_core.Signal | undefined> | undefined; customizationJson: _angular_core.Signal<_sinequa_atomic_angular.CJsonMint>; sources: _angular_core.Signal<_sinequa_atomic_angular.CSources>; filters: _angular_core.Signal<_sinequa_atomic_angular.CFilter[]>; general: _angular_core.Signal<{ name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; } | undefined>; assistants: _angular_core.Signal<{ [x: string]: _sinequa_atomic_angular.AssistantDetails; }>; agents: _angular_core.Signal<{ [x: string]: { defaultAgent: string; }; }>; initialize: () => Promise; initializeWithAppName: (appName: string) => Promise; update: (app: Partial<_sinequa_atomic_angular.CCAppState>) => void; getWebServiceByType: (type: _sinequa_atomic.CCWebService["webServiceType"]) => _sinequa_atomic.CCWebService | undefined; getLabels: () => { private: string; public: string; }; getQueryByName: (name: string) => _sinequa_atomic.CCQuery | undefined; getQueryByIndex: (index: number) => _sinequa_atomic.CCQuery | undefined; getDefaultQuery: () => _sinequa_atomic.CCQuery | undefined; allowEmptySearch: (queryName: string) => boolean; enableFieldedSearch: (queryName: string) => boolean; allowLabels: () => boolean; getColumnAlias: (column: string) => string; getColumn: (columnOrAlias: string) => _sinequa_atomic.CCColumn | undefined; isDateColumn: (column: string) => boolean; isTabSearch: (queryName: string) => boolean; getAggregationCount: (queryName: string | undefined, aggregationName: string) => number; getAuthorizedFilters: () => _sinequa_atomic.Aggregation[]; getAuthorized: (filters: Pick<_sinequa_atomic_angular.CFilter, "column" | "name">[]) => _sinequa_atomic.Aggregation[]; getNamedCustomizationJson: (name: string) => unknown | undefined; getAggregationIcon: (column: string) => string | undefined; getAggregationItemsCustomization: (column: string) => _sinequa_atomic_angular.CFilterItem[] | undefined; getAggregationCustomization: (aggColumn: string, aggName?: string) => _sinequa_atomic_angular.CFilter | undefined; isAssistantAllowed: (assistantName: string) => boolean; isAgentAllowed: (agentName: string) => boolean; } & _ngrx_signals.StateSource<{ name: string; description?: string | undefined; versionId: string; queries: Record; rfms: Record; indexes: { _: _sinequa_atomic.CCIndex; } & Record; lists: Record; webServices: Record; queryNames: string; labels: string; preview: string; autocomplete: string; sponsoredLinks: string; queryExport: string; queryRssEnabled: boolean; data: Record & _sinequa_atomic_angular.CJson & { filters?: _sinequa_atomic_angular.CAggregation[]; autocomplete?: _sinequa_atomic_angular.Autocomplete; tabs?: Record; }>; sources?: _sinequa_atomic_angular.CSources; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; allowAdvancedFilters?: boolean; general?: { name?: string; logo?: { alt?: string; light?: { small?: string; large?: string; sidebar?: string; }; dark?: { small?: string; large?: string; sidebar?: string; }; }; features?: { [key: string]: boolean | { [key: string]: string | boolean | string[] | undefined; } | undefined; allowChangePassword?: boolean; editablepartition?: boolean; advancedSearch?: boolean; allowChatDrawer?: boolean; filterLinkChildren?: boolean; expandPreview?: boolean; quickFilter?: boolean; showAggregationItemCount?: boolean; assistant?: { usePrefixName?: boolean; }; filters?: { homepage?: boolean; }; userProfile?: { enabled?: boolean; data?: string[]; customData?: string[]; }; previewMultiConversion?: boolean; persistFiltersAcrossTabs?: boolean; }; converters?: _sinequa_atomic_angular.CConverter[]; feedback?: _sinequa_atomic_angular.CFeedback; }; documentsUploadSettings?: { enabled?: boolean; }; }; customJSONs: { name: string; data: Record; }[] & _sinequa_atomic_angular.SideCJson[]; apiVersion: string; workspaceApp: string; defaultQueryName: string; auditEnabled?: boolean | undefined; dataSets?: string | undefined; revision?: number | undefined; runnableModels?: string | undefined; authorizationLevel?: string | undefined; columnMap?: Record | undefined; }>; transform(collection: string[]): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵpipe: _angular_core.ɵɵPipeDeclaration; } declare class OperatorPipe implements PipeTransform { private readonly transloco; private lastTransformedValue; private readonly cdr; private readonly destroyRef; transform(filter?: LegacyFilter): string; private transformFilter; transformOperator(operator?: FilterOperator): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵpipe: _angular_core.ɵɵPipeDeclaration; } /** * The `SyslangPipe` class is a custom pipe that transforms a string value using the current language. * This pipe is used to translate strings that are not part of the Angular i18n system. * This pipe exists to keep the compatibility with a legacy system that uses a custom language syntax. * * This pipe can be used in the following way: * * @example *
{{ 'Hello[fr]Bonjour' | syslang }}
* // output: `Bonjour` if your current language is 'fr' * // output: `Hello` if your current language is not 'fr' * *
{{ 'Hello[fr]Bonjour' | syslang: 'fr' }}
* // output: `Bonjour` even if your current language is not 'fr' */ declare class SyslangPipe implements PipeTransform, OnDestroy { private readonly transloco; private readonly cdr; private lastValue; private currentLang; private subscription; ngOnDestroy(): void; constructor(); /** * Transforms the input value using the current language. * @param value The input string value to be transformed. * @returns The transformed string value. */ transform(value?: string, lang?: string): string | null; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵpipe: _angular_core.ɵɵPipeDeclaration; } declare class TranslocoDateImpurePipe extends DatePipe implements OnDestroy { private readonly transloco; private readonly cdr; private lastTransformedValue; private subscription; constructor(locale: string, defaultTimezone?: string | null, defaultOptions?: DatePipeConfig | null); ngOnDestroy(): void; transform(value: Date | string | number, format?: string, timezone?: string): string | null; transform(value: null | undefined, format?: string, timezone?: string): null; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵpipe: _angular_core.ɵɵPipeDeclaration; } declare class FileSizePipe implements PipeTransform { transform(value: number): { key: string; value: number; }; /** * Formats a given size in bytes into a more readable format. * It converts the size into kilobytes, megabytes, gigabytes, terabytes, or petabytes as appropriate. * * @param size - The size in bytes to be formatted. * @returns An object containing the key representing the unit and the value in that unit. * * @example * In a component template: * {{ 1048576 | fileSize | json }} * Output: { "key": "memorySize.mb", "value": 1 } */ formatMemorySize(size: number): { key: string; value: number; }; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵpipe: _angular_core.ɵɵPipeDeclaration; } /** * Resolves the name of the default query from the application store. * * @returns The name of the default query or an empty string if not available. */ declare const queryNameResolver: ResolveFn; type PreviewHighlightName = 'company' | 'geo' | 'person' | 'extractslocations' | 'matchlocations'; type PreviewHighlight = { name: PreviewHighlightName; color: string; bgColor: string; }; declare const HIGHLIGHTS: InjectionToken; /** * @deprecated use `general` configuration json instead from the app store */ type AppFeatures = { assistant: { usePrefixName: boolean; }; }; /** * @deprecated use `general` configuration json instead from the app store */ declare const APP_FEATURES: InjectionToken; export { AGGREGATIONS_NAMES, AGGREGATIONS_NAMES_PRESET_DEFAULT, APP_FEATURES, AdvancedFiltersComponent, AdvancedSearch, AdvancedSearchComponent, AggregationComponent, AggregationDateComponent, AggregationDateRangeDialogComponent, AggregationListComponent, AggregationPanelComponent, AggregationTreeComponent, AggregationsService, AggregationsStore, Alert, AlertDialog, AlertsComponent, AppService, AppStore, ApplicationService, ApplicationStore, ArticleEntities, ArticleExtracts, ArticleLabels, ArticleSimilarDocuments, AsideFiltersComponent, AuditFeedbackType, AuditService, AuthGuard, AuthPageComponent, AutocompleteService, BOOKMARKS_CONFIG, BOOKMARKS_OPTIONS, BackdropComponent, BackdropService, BookmarkButtonComponent, BookmarksComponent, COLLECTIONS_CONFIG, COLLECTIONS_OPTIONS, COMPONENTS_FOR_DOCUMENT_TYPE, ChangePasswordComponent, ChildMarkerDirective, CollectionsComponent, CollectionsDialog, DRAWER_COMPONENT, DRAWER_STACK_MAX_COUNT, DateComponent, DeleteCollectionDialog, DidYouMeanComponent, DocumentLocatorComponent, DrawerAdvancedFiltersComponent, DrawerComponent, DrawerNavbarComponent, DrawerPreviewComponent, DrawerService, DrawerStackComponent, DrawerStackService, DropdownInputComponent, DropdownListComponent, ErrorComponent, ExportDialog, ExportService, FILTERS_BREAKPOINT, FILTER_DATE_ALLOW_CUSTOM_RANGE, FeatureFlagsDialogComponent, FeedbackDialogComponent, FileSizePipe, FilterButtonComponent, FiltersBarComponent, HIGHLIGHTS, HighlightWordPipe, InfinityScrollDirective, InlineWorker, JsonMethodPluginService, KeyboardNavigatorDirective, LabelService, LabelsEditDialog, LoadingComponent, MetadataComponent, MissingTermsComponent, MoreButtonComponent, MoreComponent, MultiSelectLabelsComponent, MultiSelectionToolbarComponent, NON_SEARCHABLE_COLUMNS, NON_SEARCHABLE_DEFAULTS, NavbarTabsComponent, NavigationService, NoResultComponent, OpenArticleOnCtrlEnterDirective, OperatorPipe, OverflowItemDirective, OverflowManagerDirective, OverflowStopDirective, OverrideUserDialogComponent, PREVIEW_CONFIG, PagerComponent, PreviewNavigator, PreviewService, PrincipalService, PrincipalStore, QueryParamsStore, QueryService, RECENT_SEARCHES_CONFIG, RECENT_SEARCHES_OPTIONS, ROUTE_COMPONENTS, RecentSearchesComponent, ResetUserSettingsDialogComponent, SAVED_SEARCHES_CONFIG, SAVED_SEARCHES_OPTIONS, SavedSearchDialog, SavedSearchesComponent, SavedSearchesService, SearchFeedbackComponent, SearchInputFooter, SearchService, SelectArticleDirective, SelectArticleOnClickDirective, SelectionHistoryService, SelectionService, SelectionStore, ShowBookmarkDirective, SidebarNavComponent, SignInComponent, SignedOutComponent, SortSelectorComponent, SourceComponent, SourceIconPipe, SponsoredResultsComponent, SyslangPipe, THEMES, TextChunkService, ThemeProviderDirective, ThemeSelectorComponent, ThemeStore, ThemeToggleComponent, TranslocoDateImpurePipe, UserProfileDialog, UserProfileFormComponent, UserProfileService, UserSettingsStore, applyThemeToNativeElement, auditInterceptorFn, authInterceptorFn, bodyInterceptorFn, bootstrapApp, buildQuery, debouncedSignal, errorInterceptorFn, getCurrentPath, getCurrentQueryName, getQueryNameFromRoute, injectRouteNavigation, processCssVars, queryNameResolver, signIn, themeColorNameToCssVariable, themeColorsToCssVariables, toastInterceptorFn, withAggregationsFeatures, withAlertsFeatures, withAppFeatures, withApplicationFeatures, withAssistantFeatures, withBasketsFeatures, withBookmarkFeatures, withBootstrapApp, withExtractsFeatures, withFetch, withMultiSelectionFeatures, withPrincipalFeatures, withQueryParamsFeatures, withRecentSearchesFeatures, withSavedSearchesFeatures, withSelectionFeatures, withThemeBodyHook, withThemes, withThemesFeatures, withUserSettingsFeatures }; export type { AgentUserSettings, AggEx, AggregationEx, AggregationListEx, AggregationListItem, AggregationTitle, AggregationTreeEx, AggregationsState, AppCJson, AppFeatures, ApplicationState, ArticleMetadata, AssistantDetails, Autocomplete, Basket, Bookmark, BookmarksConfig, CAggregation, CAggregationItem, CCAppState, CCWebServiceLabels, CConverter, CFeedback, CFilter, CFilterEx, CFilterItem, CJ, CJson, CJsonMint, CSources, CollectionsConfig, ComponentMapping, CssVars, DateRange, DocumentOffsets, DocumentPages, DocumentTypeMap, DropdownItem, ExportQueryOptions, Extract, FilterDropdown, KeyboardNavigationOnSelectionHandlers, KeyboardNavigatorOptions, LabelsConfig, MultiSelectionState, MultiSelectionToolbarVariants, NavRouteTab, PageConfiguration, PreviewEvents, PreviewHighlight, PreviewHighlightName, PreviewHighlights, PrincipalState, SearchItem, SearchOptions, SearchesConfig, SelectionHistoryEvent, SelectionState, SelectionStrategy, SideCJson, SortingChoice, Theme, ThemeBodyHookParameters, ThemeScope, ThemeStoreState, UserSettingsState };