import { SymmetricalEncryptionService, EncryptionTestService } from 'encryption-helpers'; export * from 'encryption-helpers'; import * as i0 from '@angular/core'; import { Signal, InjectionToken, OnDestroy, Injector, OnInit, OnChanges, SimpleChanges, EventEmitter, ModuleWithProviders } from '@angular/core'; import * as rxjs from 'rxjs'; import { Observable, Subject, OperatorFunction, Subscription, BehaviorSubject } from 'rxjs'; import { HttpClient, HttpHeaders, HttpContextToken, HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpInterceptorFn } from '@angular/common/http'; import * as i18 from 'toast-message-display'; import { ToastMessageDisplayService } from 'toast-message-display'; import Dexie, { Table } from 'dexie'; import { AST } from 'node-sql-parser'; import * as _angular_forms from '@angular/forms'; import { FormBuilder, FormControl, FormArray } from '@angular/forms'; import { DataSource } from '@angular/cdk/collections'; import * as i26 from '@angular/material/list'; import { MatSelectionListChange } from '@angular/material/list'; import * as i4 from '@angular/common'; import * as i7 from '@angular/material/button'; import * as i21 from '@angular/material/tabs'; import * as i22 from '@angular/material/select'; import * as i23 from '@angular/material/chips'; import * as i24 from '@angular/material/menu'; import * as i5 from '@angular/material/icon'; import * as i27 from '@angular/material/table'; import * as i28 from '@angular/material/button-toggle'; import * as i29 from '@angular/material/autocomplete'; import * as i30 from '@angular/material/progress-bar'; import * as i6 from '@angular/material/progress-spinner'; import { ProgressSpinnerMode } from '@angular/material/progress-spinner'; import * as i32 from '@angular/material/slide-toggle'; import * as i33 from '@angular/material/divider'; import * as i34 from '@angular/material/form-field'; import * as i35 from '@angular/material/input'; import * as i36 from '@angular/material/toolbar'; import * as i37 from '@ngx-translate/core'; import * as i38 from '@angular/material/sidenav'; import * as i39 from '@angular/material/datepicker'; import * as i40 from '@angular/material/core'; import { ThemePalette } from '@angular/material/core'; import * as i41 from '@angular/material/card'; declare enum StorageType { GLOBAL = 0, SESSION = 1, DB = 2 } interface SettingOptionsInterface { storage?: StorageType; expires?: number; expiresIn?: string; encrypted?: boolean; } declare class SettingOptions implements SettingOptionsInterface { storage?: StorageType | undefined; expires?: number | undefined; expiresIn?: string | undefined; encrypted?: boolean | undefined; constructor(storage?: StorageType | undefined, expires?: number | undefined, expiresIn?: string | undefined, encrypted?: boolean | undefined); static adapt(item?: any): SettingOptions; } interface StorageOptionInterface { id?: string; name: string; data?: any; options?: SettingOptions; } declare class StorageOption implements StorageOptionInterface { id?: string | undefined; name: string; data?: any | undefined; options?: SettingOptions | undefined; constructor(id?: string | undefined, name?: string, data?: any | undefined, options?: SettingOptions | undefined); static deriveStableId(name: string, storage?: StorageType): string; static adapt(item?: any): StorageOption; } interface GlobalStoreOptionsInterface { encryption?: boolean; expiresIn?: string; expires?: number; stores: StorageOption[] | null; } declare class GlobalStoreOptions implements GlobalStoreOptionsInterface { encryption: boolean; expiresIn?: string | undefined; expires?: number | undefined; stores: StorageOption[] | null; constructor(encryption?: boolean, expiresIn?: string | undefined, expires?: number | undefined, stores?: StorageOption[] | null); static adapt(item?: any): GlobalStoreOptions; } interface StorageDataInterface { id?: string; data?: any; } declare class StorageData implements StorageDataInterface { id?: string | undefined; data?: any | undefined; constructor(id?: string | undefined, data?: any | undefined); static adapt(item?: any): StorageData; } declare class UtilsService { http: HttpClient; constructor(); isString(x: string | number): boolean; isObject(obj: any): boolean; JSONToString(value: any): any; stringToJSON(value: string): any; isJSON(str: any): boolean; getValueByProp(obj: any, prop: string): any; objectsEqual(x: any, y: any, seen?: Set): boolean; getJSON(file: string): rxjs.Observable; get today(): number; base32ToHex(base32: string): string; binaryToHex(binary: string): string; expires(str?: string): number | undefined; hasExpired(expiryDate: number): boolean; hasExpiry(setting: any): boolean; expiresIn(expiryDate: number): string | undefined; lc: (str: string) => string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface RetryOptionsInterface { times?: number; delay?: number; } declare class RetryOptions implements RetryOptionsInterface { times: number; delay: number; constructor(times?: number, delay?: number); static adapt(item?: any): RetryOptions; } interface ConfigHTTPOptionsInterface { server: string; path?: any[]; headers?: any; polling?: number; retry?: RetryOptions; stream?: boolean; displayError?: boolean; displaySuccess?: boolean; selector?: string; suppressToastStatuses?: number[]; } declare class ConfigHTTPOptions implements ConfigHTTPOptionsInterface { server: string; path?: any[] | undefined; headers?: any | undefined; polling?: number | undefined; retry?: RetryOptions | undefined; stream?: boolean | undefined; displayError?: boolean | undefined; displaySuccess?: boolean | undefined; selector?: string | undefined; suppressToastStatuses?: number[] | undefined; constructor(server?: string, path?: any[] | undefined, headers?: any | undefined, polling?: number | undefined, retry?: RetryOptions | undefined, stream?: boolean | undefined, displayError?: boolean | undefined, displaySuccess?: boolean | undefined, selector?: string | undefined, suppressToastStatuses?: number[] | undefined); static adapt(item?: any): ConfigHTTPOptions; } interface LocalStorageOptionsInterface { storageName?: string; storageSettingsName?: string; options?: SettingOptions; } declare class LocalStorageOptions implements LocalStorageOptionsInterface { storageName?: string | undefined; storageSettingsName?: string | undefined; options?: SettingOptions | undefined; constructor(storageName?: string | undefined, storageSettingsName?: string | undefined, options?: SettingOptions | undefined); static adapt(item?: any): LocalStorageOptions; } interface ConfigOptionsInterface { httpRequestOptions?: ConfigHTTPOptions; LocalStorageOptions?: LocalStorageOptions; appId?: string; } declare class ConfigOptions implements ConfigOptionsInterface { httpRequestOptions?: ConfigHTTPOptions | undefined; LocalStorageOptions?: LocalStorageOptions | undefined; appId?: string | undefined; constructor(httpRequestOptions?: ConfigHTTPOptions | undefined, LocalStorageOptions?: LocalStorageOptions | undefined, appId?: string | undefined); static adapt(item?: any): ConfigOptions; } interface WSOptionsInterface { id: string; wsServer: string; jwtToken: string; permissions?: string[]; channels?: string[]; wsUpdateChannels?: string[]; user?: any; retry?: RetryOptions; } declare class WSOptions implements WSOptionsInterface { id: string; wsServer: string; jwtToken: string; permissions?: string[] | undefined; channels?: string[] | undefined; wsUpdateChannels?: string[] | undefined; user?: any | undefined; retry?: RetryOptions | undefined; constructor(id?: string, wsServer?: string, jwtToken?: string, permissions?: string[] | undefined, channels?: string[] | undefined, wsUpdateChannels?: string[] | undefined, user?: any | undefined, retry?: RetryOptions | undefined); static adapt(item?: any): WSOptions; } /** * Enum representing valid streaming format types * * This enum defines all supported streaming formats for HTTP requests. * Each enum value corresponds to a specific data format and parsing strategy. */ declare enum StreamType { JSON = "json", NDJSON = "ndjson", AI_STREAMING = "ai_streaming", EVENT_STREAM = "event_stream", AUTO = "auto" } interface ApiRequestInterface { server: string; path?: any[]; headers?: any; adapter?: any; mapper?: any; polling?: number; retry?: RetryOptions; stream?: boolean; streamType?: StreamType; displayError?: boolean; displaySuccess?: boolean; successMessage?: string; errorMessage?: string; saveAs?: string; fileContentHeader?: string; ws?: WSOptions; env?: string; uploadFiles?: File | File[]; uploadFieldName?: string; uploadHttpMethod?: 'POST' | 'PUT'; allowedTypes?: string[]; maxFileSize?: number; maxTotalSize?: number; selector?: string; suppressToastStatuses?: number[]; } declare class ApiRequest implements ApiRequestInterface { server: string; path?: any[] | undefined; headers?: any | undefined; adapter?: any | undefined; mapper?: any | undefined; polling?: number | undefined; retry?: RetryOptions | undefined; stream?: boolean | undefined; streamType?: StreamType | undefined; displayError?: boolean | undefined; displaySuccess?: boolean | undefined; successMessage?: string | undefined; errorMessage?: string | undefined; saveAs?: string | undefined; fileContentHeader?: string | undefined; ws?: WSOptions | undefined; env?: string | undefined; uploadFiles?: (File | File[]) | undefined; uploadFieldName?: string | undefined; uploadHttpMethod?: "POST" | "PUT" | undefined; allowedTypes?: string[] | undefined; maxFileSize?: number | undefined; maxTotalSize?: number | undefined; selector?: string | undefined; suppressToastStatuses?: number[] | undefined; constructor(server?: string, path?: any[] | undefined, headers?: any | undefined, adapter?: any | undefined, mapper?: any | undefined, polling?: number | undefined, retry?: RetryOptions | undefined, stream?: boolean | undefined, streamType?: StreamType | undefined, displayError?: boolean | undefined, displaySuccess?: boolean | undefined, successMessage?: string | undefined, errorMessage?: string | undefined, saveAs?: string | undefined, fileContentHeader?: string | undefined, ws?: WSOptions | undefined, env?: string | undefined, uploadFiles?: (File | File[]) | undefined, uploadFieldName?: string | undefined, uploadHttpMethod?: "POST" | "PUT" | undefined, allowedTypes?: string[] | undefined, maxFileSize?: number | undefined, maxTotalSize?: number | undefined, selector?: string | undefined, suppressToastStatuses?: number[] | undefined); static adapt(item?: any): ApiRequest; } interface RequestOptionsInterface { path: any[]; headers: any; forceRefresh?: boolean; ignoreQueryParams?: string[]; queryParamsExpiresIn?: string | number; selector?: string; } declare class RequestOptions implements RequestOptionsInterface { path: any[]; headers: {}; forceRefresh?: boolean | undefined; ignoreQueryParams?: string[] | undefined; queryParamsExpiresIn?: string | number | undefined; selector?: string | undefined; constructor(path?: any[], headers?: {}, forceRefresh?: boolean | undefined, ignoreQueryParams?: string[] | undefined, queryParamsExpiresIn?: string | number | undefined, selector?: string | undefined); static adapt(item?: any): RequestOptions; } interface OperationResultInterface { success: boolean; operation: 'CREATE' | 'UPDATE' | 'DELETE' | 'PATCH'; } declare class OperationResultModel implements OperationResultInterface { success: boolean; operation: 'CREATE' | 'UPDATE' | 'DELETE' | 'PATCH'; constructor(success?: boolean, operation?: 'CREATE' | 'UPDATE' | 'DELETE' | 'PATCH'); static adapt(item?: any): OperationResultModel; } interface StreamConfigInterface { streamType: StreamType; totalHeader?: string; } declare class StreamConfigModel implements StreamConfigInterface { streamType: StreamType; totalHeader: string; constructor(streamType?: StreamType, totalHeader?: string); static adapt(item?: any): StreamConfigModel; } interface StreamProgressInterface { received: number; total?: number; percent: number; stage: 'connecting' | 'streaming' | 'complete' | 'error'; } declare class StreamProgressModel implements StreamProgressInterface { received: number; total?: number | undefined; percent: number; stage: 'connecting' | 'streaming' | 'complete' | 'error'; constructor(received?: number, total?: number | undefined, percent?: number, stage?: 'connecting' | 'streaming' | 'complete' | 'error'); static adapt(item?: any): StreamProgressModel; } interface StreamOutputInterface { data: T[]; progress: StreamProgressModel; endpoint?: string; } declare class StreamOutputModel implements StreamOutputInterface { data: T[]; progress: StreamProgressModel; endpoint?: string | undefined; constructor(data?: T[], progress?: StreamProgressModel, endpoint?: string | undefined); static adapt(item?: any): StreamOutputModel; } interface StreamEventMetadataInterface { timestamp: Date; streamType: StreamType; contentLength?: number; } declare class StreamEventMetadataModel implements StreamEventMetadataInterface { timestamp: Date; streamType: StreamType; contentLength?: number | undefined; constructor(timestamp?: Date, streamType?: StreamType, contentLength?: number | undefined); static adapt(item?: any): StreamEventMetadataModel; } interface StreamEventInterface { type: 'progress' | 'complete' | 'data'; data: T; metadata?: StreamEventMetadataModel; } declare class StreamEventModel implements StreamEventInterface { type: 'progress' | 'complete' | 'data'; data: T; metadata?: StreamEventMetadataModel | undefined; constructor(type?: 'progress' | 'complete' | 'data', data?: T, metadata?: StreamEventMetadataModel | undefined); static adapt(item?: any): StreamEventModel; } interface ParsingResultInterface { success: boolean; data?: T[]; error?: string; } declare class ParsingResultModel implements ParsingResultInterface { success: boolean; data?: T[] | undefined; error?: string | undefined; constructor(success?: boolean, data?: T[] | undefined, error?: string | undefined); static adapt(item?: any): ParsingResultModel; } declare class ObjectMergerService { private configOptions?; utils: UtilsService; constructor(configOptions?: ConfigOptions | undefined); mergeOptions(options?: any, params?: any[]): ApiRequest; mergeStorageOptions(options?: SettingOptions): SettingOptions; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface State { localStores: StorageData[]; sessionStores: StorageData[]; settings: StorageOption[]; } declare class LocalStorageManagerService { private configOptions?; storageName: string; storageSettingsName: string; defaultOptions: SettingOptions; stateRetrieved: boolean; encrypted: boolean; private readonly destroyRef; utils: UtilsService; objectMergerService: ObjectMergerService; encryption: SymmetricalEncryptionService; encryptionTest: EncryptionTestService; private readonly state; private readonly stateChanged$; readonly stores: Signal; readonly storeExists: (store: string) => Signal; readonly store: (store: string) => Signal; readonly settings: Signal; readonly setting: (store: string) => Signal; private toSyncObservable; readonly stores$: Observable; readonly storeExists$: (store: string) => Observable; readonly store$: (store: string) => Observable; readonly settings$: Observable; readonly setting$: (store: string) => Observable; constructor(configOptions?: ConfigOptions | undefined); /** Compat for existing test setup that seeds state directly. */ setState(state: State): void; setStore(store: { id: string; name: string; data: any; options: SettingOptions; }): void; createStore(store: { id?: string; name: string; data: any; options: SettingOptions; }): void; updateStore(store: { name: string; data: any; preserveRequestCache?: boolean; }): void; deleteStore(store: { name: string; }): void; resetStore(): void; private persistState; private expired; retrieveState(): void; private isObjectOrArray; private isString; private fixAndParseJSON; private validStoreName; private hasGlobalStorage; /** * Clears all stored data from localStorage and sessionStorage * Use this method to recover from corrupted data errors */ clearAllStoredData(): void; /** * Checks if stored data appears to be corrupted * Returns true if data appears corrupted */ checkForCorruptedData(): boolean; private tryParseSettingsArray; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class RequestService { private http; private pathQueryService; private headersService; protected readonly stateChanged$: Subject; isPending: i0.WritableSignal; isPending$: Observable; progress: i0.WritableSignal; progress$: Observable; streamProgress: i0.WritableSignal; streamProgress$: Observable; getRecordRequest(options: ApiRequest): Observable; getRecordRequest(options: ApiRequest): Observable; getRecordRequest(options: ApiRequest & { stream: true; }): Observable; createRecordRequest(options: ApiRequest, data: any): Observable; createRecordRequest(options: ApiRequest & { stream: true; }, data: any): Observable; createRecordRequest(options: ApiRequest, data: any): Observable; createRecordRequest(options: ApiRequest & { stream: true; }, data: any): Observable; updateRecordRequest(options: ApiRequest, data: any): Observable; patchRecordRequest(options: ApiRequest, data: any): Observable; deleteRecordRequest(options: ApiRequest): Observable; private buildUrlPath; private buildHeaders; private buildCombinedHeaders; private buildErrorDisplayContext; private resolveSelector; private request; private requestStreaming; downloadFileRequest(options: ApiRequest): Observable; uploadFileRequest(options: ApiRequest): Observable; private validateUploadFiles; private buildFormData; private handleFinalize; private handleStreamProgressFinalize; private downloadFile; private createFileType; private combineHeaders; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface DatabaseStorageInterface { table: string; expiresIn: string; deltaSync?: boolean; reconcile?: boolean; reconcileIntervalMs?: number; } declare class DatabaseStorage implements DatabaseStorageInterface { table: string; expiresIn: ''; deltaSync: boolean; reconcile: boolean; reconcileIntervalMs: number; constructor(table: string | undefined, expiresIn: '', deltaSync?: boolean, reconcile?: boolean, reconcileIntervalMs?: number); static adapt(item?: any): any; } interface BatchOptionsInterface { mode?: 'sequential' | 'parallel'; stopOnError?: boolean; concurrency?: number; ignoreErrors?: boolean; logErrors?: boolean; displaySuccess?: boolean; displayError?: boolean; } declare class BatchOptions implements BatchOptionsInterface { mode: 'sequential' | 'parallel'; stopOnError: boolean; concurrency: number; ignoreErrors: boolean; logErrors: boolean; displaySuccess?: boolean | undefined; displayError?: boolean | undefined; constructor(mode?: 'sequential' | 'parallel', stopOnError?: boolean, concurrency?: number, ignoreErrors?: boolean, logErrors?: boolean, displaySuccess?: boolean | undefined, displayError?: boolean | undefined); static adapt(item?: any): BatchOptions; } interface BatchResultInterface { request: any; success: boolean; data?: T; error?: any; index: number; timestamp: number; } declare class BatchResult implements BatchResultInterface { request: any; success: boolean; data?: T | undefined; error?: any | undefined; index: number; timestamp: number; constructor(request: any, success: boolean, data?: T | undefined, error?: any | undefined, index?: number, timestamp?: number); static adapt(item?: any): BatchResult; } type BatchRequestState = BatchPendingState | BatchSuccessState | BatchErrorState; interface BatchPendingState { index: number; request: any; isPending: true; data?: undefined; error?: undefined; } interface BatchSuccessState { index: number; request: any; isPending: false; data: T; error?: undefined; } interface BatchErrorState { index: number; request: any; isPending: false; data?: undefined; error: any; } declare function isPendingState(state: BatchRequestState): state is BatchPendingState; declare function isSuccessState(state: BatchRequestState): state is BatchSuccessState; declare function isErrorState(state: BatchRequestState): state is BatchErrorState; interface BatchProgress { total: number; pending: number; completed: number; failed: number; percent: number; } declare function calculateBatchProgress(states: BatchRequestState[]): BatchProgress; declare enum DataType { ANY = 0, ARRAY = 1, OBJECT = 2 } /** * An injection token that provides the configuration settings for the application. * This token can be used to inject the `ConfigSettings` instance into components or services * that require access to the application configuration. */ declare const CONFIG_SETTINGS_TOKEN: InjectionToken; interface InvalidFileInfoInterface { fileName: string; fileSize: number; fileType: string; errors: string[]; } declare class InvalidFileInfoModel implements InvalidFileInfoInterface { fileName: string; fileSize: number; fileType: string; errors: string[]; constructor(fileName?: string, fileSize?: number, fileType?: string, errors?: string[]); static adapt(item?: any): InvalidFileInfoModel; } interface UploadValidationErrorInterface { invalidFiles: InvalidFileInfoModel[]; validFilesCount: number; totalFilesCount: number; } declare class UploadValidationErrorModel implements UploadValidationErrorInterface { invalidFiles: InvalidFileInfoModel[]; validFilesCount: number; totalFilesCount: number; constructor(invalidFiles?: InvalidFileInfoModel[], validFilesCount?: number, totalFilesCount?: number); static adapt(item?: any): UploadValidationErrorModel; } interface WSUserInterface { id: string; ldap?: string; name?: string; email?: string; [key: string]: any; } declare class WSUser implements WSUserInterface { id: string; ldap: string; name: string; email: string; constructor(id?: string, ldap?: string, name?: string, email?: string); static adapt(item?: any): WSUser; } interface StateMessageInterface { sessionId: { id: string; ldap?: string; name?: string; email?: string; }; content: any; } declare class StateMessage implements StateMessageInterface { sessionId: { id: string; ldap?: string; name?: string; email?: string; }; content: any; constructor(sessionId?: { id: string; ldap?: string; name?: string; email?: string; }, content?: any); static adapt(item?: any): StateMessage; } interface PublicMessageInterface { sessionId: { id: string; ldap?: string; name?: string; email?: string; }; content: { message: string; [key: string]: any; }; } declare class PublicMessage implements PublicMessageInterface { sessionId: { id: string; ldap?: string; name?: string; email?: string; }; content: { message: string; [key: string]: any; }; constructor(sessionId?: { id: string; ldap?: string; name?: string; email?: string; }, content?: { message: string; [key: string]: any; }); static adapt(item?: any): PublicMessage; } interface NotificationMessageInterface { sessionId: { id: string; ldap?: string; name?: string; email?: string; color?: string; }; message: string; [key: string]: any; } declare class NotificationMessage implements NotificationMessageInterface { sessionId: { id: string; ldap?: string; name?: string; email?: string; color?: string; }; message: string; [key: string]: any; constructor(sessionId?: { id: string; ldap?: string; name?: string; email?: string; color?: string; }, message?: string, additionalProperties?: any); static adapt(item?: any): NotificationMessage; } interface TableSchemaDefInterface { table: string; schema: string; } declare class TableSchemaDef implements TableSchemaDefInterface { table: string; schema: string; constructor(table?: string, schema?: string); static adapt(item?: any): TableSchemaDef; static cleanString(str: string): string; } declare class DbService extends Dexie { readonly storageDB = "global_storage_db"; get db(): this; private dbReady; constructor(); private init; protected createNewDatabase(): Promise; get vr(): number; get nextVr(): number; get getTables(): string[]; hasDatabase(): Promise; getTable(tableName: string): Table | undefined; tableExists(tableName: string): boolean; protected updateTable(tableName: string, find: { key: string; value: string | number; }, data: any): Promise; protected createTable(tableName: string, schema: string): Promise; private _doCreateTable; protected DBOpened(): Promise; private getCurrentSchema; protected deleteAndReinitialize(): Observable; protected cleanTableName(str: string): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class DatabaseManagerService extends DbService { private localStorageManager; private readonly pendingCountSignal; private readonly tableNamesSignal; private readonly databaseReadySignal; readonly isPending: Signal; readonly tableNames: Signal; readonly databaseReady: Signal; private readonly stateChanged$; private toSyncObservable; readonly isPending$: Observable; readonly tableNames$: Observable; readonly databaseReady$: Observable; private trackPending; private refreshTableNames; constructor(); getDatabaseTables(): Observable; databaseExists(): Observable; hasDatabaseTable(table: string): Observable; getDatabaseTable(table: string): Observable; getDatabaseTableSchema(table: string): Observable; createDatabaseTable(tableDef: TableSchemaDef): Observable; updateDatabaseTableSchema(tableDef: TableSchemaDef): Observable; findTableRecords(table: string, column: string, value: any): Observable; findTableRecord(table: string, column: string, value: any): Observable; getTableRecords(table: string): Observable; getTableRecord(table: string, id: number): Observable; createTableRecord(table: string, record: any): Observable; createTableRecords(table: string, records: any[]): Observable; private inferSchemaFromRecords; private isMissingObjectStoreError; updateTableRecord(table: string, record: any): Observable; updateTableRecords(table: string, records: any[]): Observable; deleteTableRecord(table: string, id: number): Observable; deleteTableRecords(table: string, ids: number[]): Observable; reconcileTableRecords(table: string, records: any[]): Observable<{ records: any[]; removedIds: any[]; }>; clearTable(table: string): Observable; clearDatabase(): void; resetDatabase(): Observable; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface ChannelMessageInterface { messageId?: number; channel?: string; isReplay?: boolean; sessionId: any; content: any; timestamp?: string; } declare class ChannelMessage implements ChannelMessageInterface { messageId?: number | undefined; channel?: string | undefined; isReplay?: boolean | undefined; sessionId: any; content: any; timestamp?: string | undefined; constructor(messageId?: number | undefined, channel?: string | undefined, isReplay?: boolean | undefined, sessionId?: any, content?: any, timestamp?: string | undefined); static adapt(item?: any): ChannelMessage; } /** * LoggerService for http-request-manager library * * Automatically enables debug logging in development mode, * disables it in production mode. * * Usage: * ```typescript * constructor(private logger: LoggerService) {} * * this.logger.debug('WebSocket', 'Connected successfully'); * this.logger.info('HTTP', 'Request completed', { status: 200 }); * this.logger.warn('State', 'Cache miss for key', { key: 'user' }); * this.logger.error('Database', 'Connection failed', error); * ``` */ declare class LoggerService { private static readonly DEBUG_FLAG_KEY; private debugMode; constructor(); /** * Debug level logging - only shown in development mode * Use for: Detailed diagnostic information, state changes, connection events */ debug(context: string, message: string, data?: any): void; /** * Info level logging - only shown in development mode * Use for: Important operational messages, successful operations */ info(context: string, message: string, data?: any): void; /** * Warning level logging - only shown in development mode * Use for: Potential issues, deprecated usage, recoverable errors */ warn(context: string, message: string, data?: any): void; /** * Error level logging - only shown in development mode * Use for: Actual errors, failures, exceptions */ error(context: string, message: string, data?: any): void; /** * Check if debug mode is enabled (development mode) */ isDebugEnabled(): boolean; private isDebugFlagEnabled; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Channel type enum for different communication purposes * - STATE: Private channels for state synchronization (SYS- prefix) * - MESSAGE: Public messaging/communication channels (PUB- prefix) * - NOTIFICATION: Notification channels with DB persistence (MES- prefix) */ declare enum ChannelType { STATE = "SYS", MESSAGE = "PUB", NOTIFICATION = "MES" } /** * Utility function to create prefixed channel name * @param channelType - The type of channel * @param channelName - The base channel name * @returns Prefixed channel name (e.g., 'SYS-USERS123') */ declare function createChannelName(channelType: ChannelType, channelName: string): string; interface APIStateManagerData { data: T[]; dataObject: T | null; } declare class HTTPManagerStateService implements OnDestroy { private apiOptions; private dataType; httpManagerService: HTTPManagerService; dbManagerService: DatabaseManagerService; localStorageManagerService: LocalStorageManagerService; utils: UtilsService; logger: LoggerService; private readonly subscriptions; private readonly stateSignal; private readonly stateChanged$; private toSyncObservable; private updateCoreState; private readonly pendingCountSignal; private readonly errorSignal; readonly isPending: Signal; readonly error: Signal; error$: Observable; isPending$: Observable; private beginPending; private endPending; private track; private readonly operationSuccessSignal; readonly operationSuccess: Signal; operationSuccess$: Observable; private emitOperationSuccess; private readonly pageSignal; readonly page: Signal; page$: Observable; private readonly totalPagesSignal; readonly totalPages: Signal; totalPages$: Observable; private readonly percentageSignal; readonly percentage: Signal; percentage$: Observable; private hasDatabase; private hasInitialFetch; streamedResponse: any[]; private maxRetries; private retryDelay; private shouldRetry; private connectionStatusSubscription?; private hasConnectedOnce; private reconcileIntervalSubscription?; private lastFetchOptions?; private databaseOptions?; private readonly volatileHeaders; private requestSignatureCache; private inFlightRequestSignatures; private _requestCachePaths; private wsRetryAttempts; wsRetryAttempts$: Observable; private wsNextRetry; wsNextRetry$: Observable; private messages; messages$: Observable; private userListByChannel; userListByChannel$: Observable>; getUsersForChannel$(channel: string): Observable; private userList; userList$: Observable; private user; user$: Observable; private channels; channels$: Observable; private notificationChannels; notificationChannels$: Observable; private todaysNotificationChannels; todaysNotificationChannels$: Observable; private notificationMessages; notificationMessages$: Observable; private latestNotification; latestNotification$: Observable; private communicationMessages; communicationMessages$: Observable; private latestCommunicationMessages; latestCommunicationMessages$: Observable; private userAction; userAction$: Observable; private static wsCommunicationQueue; private ownSessionId; wsOptions: WSOptions; connectionStatus$: Observable; isConnecting$: Observable; wsRetryCount$: Observable; wsMaxRetries$: Observable; connectionError$: Observable; constructor(apiOptions: ApiRequest | undefined, dataType: DataType | undefined, database?: DatabaseStorage); ngOnDestroy(): void; /** * Add appropriate prefix to a channel name if not already present */ private prefixChannel; /** * Remove any known prefix from a channel name */ private stripChannelPrefix; /** * Get the base channel name without prefix (for display/user reference) */ getBaseChannelName(channel: string): string; setApiRequestOptions(apiOptions?: ApiRequest, dataType?: DataType, database?: DatabaseStorage): void; private setupConnectionStatus; private readonly wsOptionsTrigger$; readonly initWS: (wsOptions: WSOptions) => void; private static sameWsConnection; private readonly initWSSubscription; appendMessages(message: any, opts?: { silent?: boolean; }): void; latestMessage(): void; clearMessages(): void; get ApiRequestOptions(): ApiRequest; private readonly initDBStorageTrigger$; readonly initDBStorage: () => void; private readonly initDBStorageSubscription; initializeState(data: any): void; readonly data: Signal; readonly data$: Observable; readonly selectRecord: (id: number) => Signal; readonly selectRecord$: (id: number) => Observable; private setData$; private mergeDeltaData$; private updateArrayState; private addData$; private deleteData$; private updateData$; private readonly clearRecordsTrigger$; readonly clearRecords: (data?: any) => void; private readonly clearRecordsSubscription; fetchRecords(options?: RequestOptions): void; private initDBStorageAsync; private buildSchemaFromAdapter; private buildSchemaFromSample; private persistStreamDataToDb; private runGetDeltaOrFullFetch; private runStreamDeltaOrFullFetch; /** * Resolves the savedAt cursor for a specific query combination. Each query combo keeps * its OWN cursor (savedAtByQuery map), so switching views back and forth delta-fetches * against the correct per-combo cursor instead of full-fetching or reusing a cursor * that belongs to a different dataset. */ private getSavedAtForCombo; /** * Deterministic, normalized query combination string for a request — same logic used by * checkTrackerAllowsRequest so cursor-query comparisons are consistent. */ private buildQueryCombinationString; private deltaFetch; private static readonly inFlightFetchRecordRequests; fetchRecord(options: RequestOptions, method: string): void; reconcile(options?: RequestOptions): void; createRecord(data: any | null, options?: RequestOptions): void; updateRecord(data: any | null, options?: RequestOptions): void; patchRecord(data: any | null, options?: RequestOptions): void; deleteRecord(options?: RequestOptions): void; createStream(data: any | null, options?: RequestOptions): void; fetchStream(options?: RequestOptions): void; private wsCommunication; /** * Actually send the WebSocket message (called when connected or from queue) */ private sendWsCommunication; /** * Send a message to channel(s) * @param message - The message content * @param channels - Optional array of channel names (passed as-is, caller should include prefix) * Use 'allChannels' to broadcast to all */ wsMessaging(message: ChannelMessage, channels?: string[]): void; /** * Subscribe to a messaging channel * @param channel - Base channel name (MES- prefix added automatically) */ subscribeToMessageChannel(channel: string): void; /** * Unsubscribe from a messaging channel * @param channel - Base channel name (MES- prefix added automatically) */ unsubscribeFromMessageChannel(channel: string): void; /** * Subscribe to a single channel (no automatic prefix) * Use subscribeToMessageChannel() for MES- prefixed channels */ subscribeToChannel(channel: string): void; /** * Subscribe to multiple channels at once */ subscribeToChannels(channels: string[]): void; /** * Unsubscribe from a channel */ unsubscribeFromChannel(channel: string): void; /** * Get observable of currently subscribed channels */ get subscribedChannels$(): Observable>; /** * Get current subscribed channels synchronously */ getSubscribedChannels(): Set; /** * Create a new channel on the server */ createChannel(channel: string): void; /** * Delete a channel from the server */ deleteChannel(channel: string): void; /** * Request list of all channels from server */ getAllChannels(): void; /** * Get users in a specific channel */ getUsersInChannel(channel: string): void; /** * Create a notification channel on the server * @param channel - Base channel name (MES- prefix added automatically) */ createNotificationChannel(channel: string): void; /** * Request list of all notification channels from server (in-memory) */ getNotificationChannels(): void; /** * Request list of today's notification channels from database * Returns unique channels that have notifications posted today */ getTodaysNotificationChannels(): void; /** * Subscribe to a notification channel with optional date filters * @param channel - Base channel name (MES- prefix added automatically) */ subscribeToNotificationChannel(channel: string, options?: { startEpoch?: number; endEpoch?: number; }, user?: any): void; /** * Unsubscribe from a notification channel * @param channel - Base channel name (MES- prefix added automatically) */ unsubscribeFromNotificationChannel(channel: string): void; /** * Send a notification to a channel * @param channel - Base channel name (MES- prefix added automatically) */ sendNotification(channel: string, content: any): void; /** * Clear/flush all records from the database table * Does not clear localStorage metadata (expires info) * Does not re-fetch from API - leaves state empty for manual refresh */ clearDatabase(): void; private isEmpty; private extractListPayload; private applyAdapter; private getSessionStoreName; private initSessionFlag; private setupReconciliation; private persistInitialFetch; private clearSessionFlag; /** * Update request options with provided headers */ private updateRequestOptions; private normalizeObject; private filterHeaders; private resolvePath; private stripBasePathPrefix; private getEffectiveParams; private buildRequestSignature; private buildSchemaSignature; private setCachedRequestSignature; private tryBeginInFlightRequest; private endInFlightRequest; private getRequestCacheMetadata; private getStoredSchemaSignature; private saveSchemaSignature; private saveRequestCacheMetadata; private clearRequestCacheMetadata; private clearRequestCacheMetadataAsync; private trackerNormalizePath; private trackerParsePathSegment; private trackerSafeDecode; private trackerNormalizePathSegments; private trackerNormalizeParamKey; private trackerNormalizeParamValue; private trackerFilterQuery; private checkTrackerAllowsRequest; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; } /** * WebSocketManagerService - Singleton WebSocket connection manager * * This service ensures only ONE WebSocket connection exists across ALL instances * of HTTPManagerStateService. It uses static properties to track connection state * globally, preventing duplicate connections when multiple state services are created. * * Usage: * - Inject into HTTPManagerService (or directly into state services) * - Call connect() with WSOptions - only the first call establishes connection * - Subsequent calls detect existing connection and skip reconnection * - All instances share the same connectionStatus$ and messages$ observables */ declare class WebSocketManagerService { private static socket; private static isConnectingSubject; isConnecting$: Observable; private static connectionInitialized; private static shouldRetry; private static lastOptions; private static lastJwtToken; private static retryCount; private static retryDelay; private static retrySubscription; private static maxRetries; private static connectionReadyNotified; private static retryCountSubject; retryCount$: Observable; private static maxRetriesSubject; maxRetries$: Observable; private static messages; messages$: Observable; private static connectionStatus; connectionStatus$: Observable; private static connectionError; connectionError$: Observable; private static isSubscribed; private static subscribedChannels; subscribedChannels$: Observable>; private static pendingSubscriptions; static getSubscribedChannels(): Set; static addSubscribedChannel(channelName: string): void; private static onReconnect; onReconnect$: Observable; private getSessionId; /** * Connect to WebSocket server * * IMPORTANT: Only the first call across ALL instances will establish a connection. * Subsequent calls will detect the existing connection and return immediately. * * @param options - WebSocket configuration options * @param jwtToken - Optional JWT token for authentication */ connect(options: WSOptions, jwtToken: string): void; /** * Disconnect from WebSocket server */ disconnect(): void; /** * Clear a stale connectionError without triggering a connection attempt. * Used when no wsServer is configured so the UI shows clean "Disconnected" state. */ clearConnectionError(): void; private sendSubscribe; /** * Send subscribe with lastSeenId for message sync support * @param channelName - Channel name to subscribe to * @param user - User data * @param lastSeenId - Last message ID seen (for replay) */ sendSubscribeWithLastSeen(channelName: string, user: any, lastSeenId: number): void; /** * Subscribe to a channel * @param channelName - Channel name to subscribe to */ subscribeToChannel(channelName: string): void; /** * Subscribe to multiple channels * @param channelNames - Array of channel names to subscribe to */ subscribeToChannels(channelNames: string[]): void; /** * Unsubscribe from a channel * @param channel - Channel name to unsubscribe from */ unsubscribeFromChannel(channel: string): void; /** * Get currently subscribed channels * @returns Set of subscribed channel names */ getSubscribedChannels(): Set; /** * Generic send method for message tracking (acks, gap requests, etc.) * @param message - Message object to send */ send(message: any): void; /** * Send broadcast message * @param content - Message content to broadcast */ sendBroadcast(content: any): void; /** * Send message in channel (state manager message) * @param channel - Channel name * @param content - Message content */ sendMessageInChannel(channel: string, content: any): void; /** * Send channel message (broadcasts to all subscribers in the channel) * @param channel - Channel name * @param content - Message content */ sendChannelMessage(channel: string, content: any): void; /** * Send message to multiple channels at once (batch) * @param channels - Array of channel names * @param content - Message content */ sendChannelMessageToChannels(channels: string[], content: any): void; /** * Send message to specific user * @param user - User identifier * @param content - Message content */ sendMessageToUser(user: string, content: any): void; /** * Request list of all channels from server */ getAllChannels(): void; /** * Create a new channel on server * @param channel - Channel name to create */ createChannel(channel: string): void; /** * Delete a channel from server * @param channel - Channel name to delete */ deleteChannel(channel: string): void; /** * Get users in a specific channel * @param channel - Channel name */ getUsersInChannel(channel: string): void; /** * Create a notification channel * @param channel - Channel name (should include MES- prefix) */ createNotificationChannel(channel: string): void; /** * Get all notification channels (in-memory) */ getNotificationChannels(): void; /** * Get today's notification channels from database */ getTodaysNotificationChannels(): void; /** * Subscribe to a notification channel with optional date filters * @param channel - Channel name * @param options - Optional start/end epoch filters * @param user - User information */ subscribeToNotificationChannel(channel: string, options?: { startEpoch?: number; endEpoch?: number; }, user?: any): void; /** * Unsubscribe from a notification channel * @param channel - Channel name */ unsubscribeFromNotificationChannel(channel: string): void; /** * Send notification to channel * @param channel - Channel name (should include MES- prefix) * @param content - Notification content */ sendNotification(channel: string, content: any): void; /** * Check if WebSocket connection is currently open * @returns true if connected, false otherwise */ static isConnected(): boolean; /** * Check if connection has been initialized (attempted at least once) * @returns true if connection was initialized, false otherwise */ static isInitialized(): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Message Tracker Service - Guaranteed Message Delivery * * Tracks message IDs, detects gaps, manages acknowledgments, and handles sync. * Ensures frontend clients never miss messages even during disconnections. * * Features: * - Per-channel message sequence tracking * - Automatic gap detection and recovery * - Batch acknowledgments (configurable interval) * - Reconnection sync with last-seen tracking * - Gap threshold alerting (10 messages before UI notification) */ declare class MessageTrackerService implements OnDestroy { private wsManager; /** Batch acknowledgment interval in milliseconds */ private readonly BATCH_ACK_INTERVAL_MS; /** Maximum gap before alerting UI */ private readonly GAP_THRESHOLD; /** Maximum messages to store in pending acks before forcing batch */ private readonly MAX_PENDING_ACKS; /** * Track last seen message ID per channel * Map */ private lastSeen; /** * Expected next message ID per channel (for gap detection) * Map */ private expectedSequence; /** * Pending acknowledgments per channel * Map> */ private pendingAcks; /** * Gap count per channel (for threshold alerting) * Map */ private gapCounts; /** * Replay mode tracking (per channel) * Used to distinguish replay vs live messages */ private inReplayMode; /** * Gap retry count (for retry logic) * Map */ private gapRetryCount; /** Subscription to WebSocket messages */ private messagesSubscription; /** Subject to signal destroy for takeUntil */ private destroy$; /** * Track channels we want to be subscribed to (survives disconnect/reconnect) * This is separate from WebSocketManagerService.subscribedChannels which tracks * actual active subscriptions */ private intendedChannels; /** Observable to emit processed messages to UI components */ private messagesSubject; messages$: Observable; constructor(wsManager: WebSocketManagerService); ngOnDestroy(): void; /** * Process incoming message * Tracks ID, detects gaps, queues acknowledgment */ private onMessage; /** * Track message ID and detect gaps */ private trackMessage; /** * Queue message for batch acknowledgment */ private queueAck; /** * Send batch acknowledgments for all channels with pending acks */ private sendAllBatchAcks; /** * Send batch acknowledgment for a specific channel */ private sendBatchAck; /** * Request missing messages from server */ private requestGapFill; /** * Handle gap threshold exceeded (optional: alert UI) */ private onGapThresholdExceeded; /** * Subscribe to channel with sync support * Automatically includes lastSeenId for replay */ subscribeToChannel(channel: string, userData?: any): void; /** * Re-subscribe to all previously subscribed channels after reconnect * Includes lastSeenId for each channel to trigger message replay */ private reSubscribeAllChannels; /** * Persist lastSeen to sessionStorage (survives page reload) */ private persistLastSeen; /** * Restore lastSeen from sessionStorage */ private restoreLastSeen; /** * Persist intendedChannels to sessionStorage */ private persistIntendedChannels; /** * Restore intendedChannels from sessionStorage */ private restoreIntendedChannels; /** * Get last seen message ID for a channel */ getLastSeenId(channel: string): number; /** * Get expected next message ID for a channel */ getExpectedNextId(channel: string): number; /** * Check if currently in replay mode for a channel */ isInReplayMode(channel: string): boolean; /** * Get gap count for a channel */ getGapCount(channel: string): number; /** * Get skipped IDs between expected and received (for detailed gap reporting) */ private getSkippedIds; /** * Clear all tracking state (useful for debugging or manual reset) */ clearState(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class HTTPManagerService extends RequestService { private configOptions?; toastMessage: ToastMessageDisplayService; ng_injector: Injector; objectMergerService: ObjectMergerService; wsManager: WebSocketManagerService; messageTracker: MessageTrackerService; connectionStatus$: Observable; messages$: Observable; subscribedChannels$: Observable>; isConnecting$: Observable; retryCount$: Observable; maxRetries$: Observable; connectionError$: Observable; countdown: i0.WritableSignal; countdown$: Observable; error: i0.WritableSignal; error$: Observable; data: i0.WritableSignal; data$: Observable; isBatchPending: i0.WritableSignal; isBatchPending$: Observable; batchResults: i0.WritableSignal; batchResults$: Observable; batchError: i0.WritableSignal; batchError$: Observable; batchStates: i0.WritableSignal[]>; batchStates$: Observable[]>; batchProgress: i0.Signal; batchProgress$: Observable; private polling$; config: ApiRequest; constructor(configOptions?: ConfigOptions | undefined); /** * Connect to WebSocket server * Only the first call across ALL instances will establish a connection */ connect(options: any, jwtToken: string): void; /** * Disconnect from WebSocket server */ disconnect(): void; /** * Clear any stale connection error without triggering a connection attempt */ clearConnectionError(): void; /** * Subscribe to a channel */ subscribeToChannel(channel: string, userData?: any): void; /** * Subscribe to multiple channels */ subscribeToChannels(channels: string[], userData?: any): void; /** * Unsubscribe from a channel */ unsubscribeFromChannel(channel: string): void; /** * Get currently subscribed channels */ getSubscribedChannels(): Set; /** * Send broadcast message */ sendBroadcast(content: any): void; /** * Send message in channel (state manager message) */ sendMessageInChannel(channel: string, content: any): void; /** * Send channel message */ sendChannelMessage(channel: string, content: any): void; /** * Send message to multiple channels */ sendChannelMessageToChannels(channels: string[], content: any): void; /** * Send message to user */ sendMessageToUser(user: string, content: any): void; /** * Get all channels */ getAllChannels(): void; /** * Create channel */ createChannel(channel: string): void; /** * Delete channel */ deleteChannel(channel: string): void; /** * Get users in channel */ getUsersInChannel(channel: string): void; /** * Create notification channel */ createNotificationChannel(channel: string): void; /** * Get notification channels */ getNotificationChannels(): void; /** * Get today's notification channels */ getTodaysNotificationChannels(): void; /** * Subscribe to notification channel */ subscribeToNotificationChannel(channel: string, options?: any, user?: any): void; /** * Unsubscribe from notification channel */ unsubscribeFromNotificationChannel(channel: string): void; /** * Send notification to channel */ sendNotification(channel: string, content: any): void; getRequest(options?: ApiRequest, params?: any[]): Observable; postRequest(data: T, options: ApiRequest, params?: any[]): Observable; putRequest(data: T, options: ApiRequest, params?: any[]): Observable; patchRequest(data: T, options: ApiRequest, params?: any[]): Observable; deleteRequest(options: ApiRequest, params?: any[]): Observable; downloadRequest(options: ApiRequest, params?: any[], saveAs?: string): Observable; uploadRequest(files: File | File[], options: ApiRequest, params?: any[]): Observable; private createObservable; private createRequest; private prepareRequestData; private handleError; private handleErrorWithSnackBar; private handleSuccessWithSnackBar; private stopPolling; private defineReqOptions; /** * Execute multiple HTTP requests with configurable execution strategy * @param requests Array of ApiRequest configurations * @param options Optional batch configuration (all properties optional) * @returns Observable emitting array of data in the order of requests provided */ getBatchRequests(requests: ApiRequest[], options?: BatchOptions): Observable; /** * Execute requests sequentially (one at a time, in order) * @param requests Array of ApiRequest configurations * @param options Optional batch configuration * @returns Observable emitting array of data when all requests complete */ getSequentialRequest(requests: ApiRequest[], options?: BatchOptions, successMessage?: string, errorMessage?: string): Observable; /** * Execute requests in parallel with concurrency control * @param requests Array of ApiRequest configurations * @param options Optional batch configuration with concurrency limit * @returns Observable emitting array of data when all requests complete */ getParallelRequest(requests: ApiRequest[], options?: BatchOptions, successMessage?: string, errorMessage?: string): Observable; /** * Execute multiple HTTP requests and emit individual state changes in real-time * @param requests Array of ApiRequest configurations * @param options Optional batch configuration (all properties optional) * @returns Observable stream of individual request states */ getBatchRequestsStream(requests: ApiRequest[], options?: BatchOptions): Observable>; /** * Execute requests sequentially and emit state changes */ private getSequentialStream; /** * Execute requests in parallel and emit state changes */ private getParallelStream; private handleSequentialError; private handleParallelError; static ɵfac: i0.ɵɵFactoryDeclaration, [{ optional: true; }]>; static ɵprov: i0.ɵɵInjectableDeclaration>; } declare function countdown(duration: number): Observable; declare function delayedRetry(delayMs: number, maxRetry?: number): (src: Observable) => Observable; declare function requestPolling(pollInterval: number, stopCondition$: Observable, isPending$: any): (source: Observable) => Observable; /** * COMPREHENSIVE REQUEST STREAMING OPERATOR - FULLY ABSTRACTED * Refactored for better type safety and memory management * * Single function that handles ALL streaming formats without hardcoded assumptions: * - JSON format (Individual JSON objects) * - NDJSON format (Newline delimited JSON) * - AI streaming format (Real-time AI responses) * - Server-Sent Events format * - Auto-detection mode * * Usage: * this.http.get(url, options).pipe(requestStreaming()).subscribe(data => {...}) * this.http.get(url, options).pipe(requestStreaming({ streamType: StreamType.NDJSON })).subscribe(data => {...}) */ declare function requestStreaming(config?: StreamConfigModel): OperatorFunction>; /** * Convenience functions for common use cases */ declare function streamJSON(): OperatorFunction>; declare function streamNDJSON(): OperatorFunction>; declare function streamAI(): OperatorFunction>; declare function streamEvents(): OperatorFunction>; declare function streamAuto(): OperatorFunction>; /** * WebSocketMessageService - Unified service for sending WebSocket messages * * Provides type-safe methods for sending messages with automatic prefix management. * Supports three message types: State (SYS-), Public (PUB-), and Notification (MES-). * * Features: * - Type-safe message models * - Automatic prefix management * - Runtime validation * - Boolean return values for success/failure * - Silent failure with console errors */ declare class WebSocketMessageService { private wsManagerService; private logger; /** * Send state message (SYS- prefix) * Used for CRUD operations and state synchronization * * @param path - Path array (e.g., ['ai', 'tests']) * @param payload - StateMessage with sessionId and content * @returns true if sent successfully, false otherwise */ sendStateMessage(path: (string | number)[], payload: StateMessage): boolean; /** * Send public message (PUB- prefix) * Used for chat, broadcast, general messaging * * @param channel - Channel name (without prefix) * @param payload - PublicMessage with sessionId and content.message * @returns true if sent successfully, false otherwise */ sendPublicMessage(channel: string, payload: PublicMessage): boolean; /** * Send notification (MES- prefix) * Used for persistent notifications with history * * @param channel - Channel name (without prefix) * @param payload - NotificationMessage with sessionId and message * @returns true if sent successfully, false otherwise */ sendNotification(channel: string, payload: NotificationMessage): boolean; /** * Send to custom channel (no prefix) * User provides full channel name * * @param channel - Full channel name * @param payload - Any message payload * @returns true if sent successfully, false otherwise */ sendToCustomChannel(channel: string, payload: any): boolean; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface StateStorageOptionsInterface { store?: string; options?: SettingOptions; model?: (state: any) => any; } declare class StateStorageOptions implements StateStorageOptionsInterface { store?: string | undefined; options?: SettingOptions | undefined; model?: ((state: any) => any) | undefined; constructor(store?: string | undefined, options?: SettingOptions | undefined, model?: ((state: any) => any) | undefined); static adapt(item?: any): StateStorageOptions; } interface StateOperationResultInterface { success: boolean; operation: 'CREATE' | 'UPDATE' | 'DELETE'; key?: string; value?: any; timestamp: number; error?: string; } declare class StateOperationResult implements StateOperationResultInterface { success: boolean; operation: 'CREATE' | 'UPDATE' | 'DELETE'; key?: string | undefined; value?: any | undefined; timestamp: number; error?: string | undefined; constructor(success?: boolean, operation?: 'CREATE' | 'UPDATE' | 'DELETE', key?: string | undefined, value?: any | undefined, timestamp?: number, error?: string | undefined); static adapt(item?: any): StateOperationResult; } interface StateStoreManagerData { } declare class StoreStateManagerService> { private readonly localStorageManagerService; private readonly injector; private readonly settings; private isRestoring; private readonly stateSignal; private readonly operationResultSignal; private readonly stateChanged$; /** Untransformed state, exactly as held internally. */ readonly rawData: Signal; /** * State passed through the store's configured model. A model is free to ignore its * argument (as `StoreStateSignalsDemoComponent`'s does) — in that case this stays * fixed at the model's default even as `rawData` changes; use `rawData` for a value * that always reflects the latest state. */ readonly data: Signal; readonly operationResult: Signal; private toSyncObservable; readonly rawData$: Observable; readonly data$: Observable; readonly operationResult$: Observable; constructor(options?: StateStorageOptions); restoreState(): void; updateState(state: Partial): void; updateData(data: Partial): void; createRecord(key: string, value: any): void; updateRecord(key: string, value: any): void; deleteRecord(key: string): void; resetState(): void; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵprov: i0.ɵɵInjectableDeclaration>; } interface DexieSqlOptions { strict?: boolean; } declare class DexieSqlService { private readonly _parser; private readonly _validator; private readonly _planner; private readonly _executor; /** * Execute a MySQL-syntax SQL SELECT string against the DexieJS IndexedDB database. * Returns an Observable that emits the result array and completes, or errors with * SqlParseError / SqlValidationError if the query is invalid. */ query(sql: string, options?: DexieSqlOptions): Observable; private _run; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class SqlParseError extends Error { name: string; constructor(message: string); } declare class SqlValidationError extends Error { name: string; constructor(message: string); } declare enum ExecutionPlanType { SIMPLE = "SIMPLE", AND_BOUNDED = "AND_BOUNDED", AND_COMPOUND = "AND_COMPOUND", OR_MERGE = "OR_MERGE", JOIN_HASH = "JOIN_HASH" } type DexieOp = 'equals' | 'notEqual' | 'above' | 'aboveOrEqual' | 'below' | 'belowOrEqual' | 'between' | 'anyOf' | 'noneOf' | 'startsWith'; interface PlanStep { col: string; op: DexieOp; val: any; } interface JoinInfo { leftTable: string; rightTable: string; leftKey: string; rightKey: string; joinType: 'inner' | 'left'; } interface ExecutionPlan { type: ExecutionPlanType; table: string; primaryStep: PlanStep | null; boundedFilters: PlanStep[]; compoundIndex?: string; compoundValues?: any[]; compoundWarnCols?: string[]; orBranches?: PlanStep[]; joinInfo?: JoinInfo; orderBy?: { col: string; dir: 'asc' | 'desc'; } | null; limit?: number | null; offset?: number | null; projection?: string[] | null; aggregate?: 'count' | null; distinct?: boolean; dedupeKey?: string; } interface ParseResult { ast: AST; tableList: string[]; columnList: string[]; } interface TableSchemaInfo { pk: string; simpleIndexes: string[]; compoundIndexes: string[][]; } interface ValidatedQuery { ast: any; schemas: Record; aliases: Record; } declare class HeadersService { headers: {}; generateHeaders(headers?: Record): { headers: HttpHeaders; }; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class PathQueryService { buildAPIPath(server: string | string[], params?: any[] | any): string; private buildRestPath; private buildQueryPath; private cleanUrlPath; private isObject; private removeEmptyParams; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * Generate a random hex color code * @returns A random hex color string (e.g., "#FF5733") */ declare const RandomHexColor: () => string; /** * Generate a random hex color with constraints to ensure good visibility * @param options Optional constraints for color generation * @returns A random hex color string with good contrast */ declare const RandomVisibleColor: (options?: { minBrightness?: number; maxBrightness?: number; }) => string; /** * Generate a random color from a predefined palette * @returns A hex color from a set of visually distinct colors */ declare const RandomPaletteColor: () => string; /** * Generate a random HSL color * @param options Optional constraints for HSL generation * @returns A random HSL color string (e.g., "hsl(120, 100%, 50%)") */ declare const RandomHSLColor: (options?: { saturation?: [number, number]; lightness?: [number, number]; }) => string; declare function toSyncObservable(sig: Signal, changed$: Observable): Observable; interface ErrorDisplaySettingsInterface { displayTime: number; position: string; } declare class ErrorDisplaySettings implements ErrorDisplaySettingsInterface { displayTime: number; position: string; constructor(displayTime?: number, position?: string); static adapt(item?: any): ErrorDisplaySettings; } declare const OWNS_ERROR_DISPLAY: HttpContextToken; declare class WithCredentialsInterceptor implements HttpInterceptor { intercept(req: HttpRequest, next: HttpHandler): Observable>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class RequestHeadersInterceptor implements HttpInterceptor { private translate; subscriptions: Subscription; language: string; get currentDate(): string; constructor(); intercept(request: HttpRequest, next: HttpHandler): Observable>; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class RequestErrorInterceptor implements HttpInterceptor { toastMessage: ToastMessageDisplayService; intercept(req: HttpRequest, next: HttpHandler): Observable>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare const PROXY_CONFIG: InjectionToken>; declare class ProxyDebuggerInterceptor implements HttpInterceptor { private proxyConfig; constructor(proxyConfig: Record); intercept(req: HttpRequest, next: HttpHandler): Observable>; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare const withCredentialsInterceptorFn: HttpInterceptorFn; declare const requestHeadersInterceptorFn: HttpInterceptorFn; declare const proxyDebuggerInterceptorFn: HttpInterceptorFn; declare const requestErrorInterceptorFn: HttpInterceptorFn; declare const httpRequestManagerInterceptors: HttpInterceptorFn[]; interface TestAllResultModel { name: string; status: 'pending' | 'success' | 'error'; detail?: any; error?: string; } declare class RequestManagerBasicDemoComponent implements OnInit { server: string; displayedColumns: string[]; getColumnsFromData(data: any[]): string[]; updateDisplayedColumns(data: any[]): void; isObject(value: any): boolean; httpManagerService: HTTPManagerService; isPending$: Observable; countdown$: Observable; GET_error$: BehaviorSubject; GET_FAILURE_error$: BehaviorSubject; POST_error$: BehaviorSubject; PUT_error$: BehaviorSubject; PATCH_error$: BehaviorSubject; DELETE_error$: BehaviorSubject; STREAM_error$: BehaviorSubject; testAllResults$: BehaviorSubject; testAllRunning$: BehaviorSubject; GET$?: Observable; GET_FAILURE$?: Observable; POST$?: Observable; PUT$?: Observable; PATCH$?: Observable; DELETE$?: Observable; STREAM$?: Observable; lastRecordId: number | null; requestParams: { GET: ApiRequest; GET_FAILURE: ApiRequest; POST: ApiRequest; PUT: ApiRequest; PATCH: ApiRequest; DELETE: ApiRequest; STREAM: ApiRequest; }; streamTypes: { id: string; value: string; }[]; streamType: string; getStreamPath(type: string): string[]; sampleClientData: { id: number; name: string; domain: string; service: string; spiffe: string; secret: string; created: number; modified: number; icon: string; imageFile: string; email: string; }; constructor(); ngOnInit(): void; onStreamType(type: string): void; private captureRecordId; onGetRequest(): void; onGetFailureRequest(): void; onCreateRequest(): void; onUpdateRequest(): void; onPatchRequest(): void; onDeleteRequest(): void; onStreamRequest(): void; errorHandling(err: any, type: string): void; onTestAll(): Promise; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface UserDataInterface { ldap: string; name: string; email: string; color: string; } declare class UserData implements UserDataInterface { ldap: string; name: string; email: string; color: string; constructor(ldap?: string, name?: string, email?: string, color?: string); static adapt(item?: any): UserData; } declare class HttpRequestServicesDemoComponent implements OnInit { private configOptions?; wsServer: string; jwtToken: string; server: string; user?: UserData; path: string[]; requestManagerDemoServer: string; adapter?: Function; mapper?: Function; requestTypes: ({ name: string; value: string; new?: undefined; divider?: undefined; disabled?: undefined; } | { name: string; value: string; new: boolean; divider?: undefined; disabled?: undefined; } | { name: string; value: string; new: boolean; divider: boolean; disabled?: undefined; } | { name: string; value: string; divider: boolean; disabled: boolean; new?: undefined; } | { name: string; value: string; divider: boolean; new?: undefined; disabled?: undefined; })[]; selectedService: string; injectionOptions?: ConfigOptions; constructor(configOptions?: ConfigOptions | undefined); ngOnInit(): void; onSelected(type: number): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface ClientInfoInterface$1 { domain: string; service: string; id: number; name: string; } declare class ClientInfo$1 implements ClientInfoInterface$1 { domain: string; service: string; id: number; name: string; constructor(domain?: string, service?: string, id?: number, name?: string); static adapt(item?: any): ClientInfo$1; } declare class StateManagerDemoService extends HTTPManagerStateService { constructor(); setAPIOptions(apiOptions: ApiRequest, dataType: DataType, database?: DatabaseStorage): void; getClients(options?: RequestOptions): void; createClient(data: any): void; updateClient(data: ClientInfo$1): void; patchClient(data: ClientInfo$1): void; deleteClient(data: ClientInfo$1): void; streamRequest(options?: RequestOptions): void; sendWsMessage(channel: string, method: string, path: (string | number)[]): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface ClientInfoMapperInterface$1 { id: number; first_name: string; last_name: string; email: string; } declare class ClientInfoMapper$1 implements ClientInfoMapperInterface$1 { id: number; first_name: string; last_name: string; email: string; constructor(id?: number, first_name?: string, last_name?: string, email?: string); static adapt(item?: any): ClientInfoMapper$1; } interface AIPromptInterface$1 { response: string; } declare class AIPrompt$1 implements AIPromptInterface$1 { response: string; constructor(response?: string); static adapt(item?: any): AIPrompt$1; } declare class RequestManagerStateDemoComponent implements OnInit { server: string; adapter?: Function; mapper?: Function; stateManagerDemoService: StateManagerDemoService; databaseManagerService: DatabaseManagerService; displayedColumns: string[]; getColumnsFromData(data: any[]): string[]; updateDisplayedColumns(data: any[]): void; isObject(value: any): boolean; getRecordLabel(item: any): string; private normalizeLabelValue; getDataLength(data: any): number; selectedRecord$?: Observable; fb: FormBuilder; streamTypes: { id: string; value: string; }[]; streamType: string; httpManagerService: HTTPManagerService; isPending$: Observable; error$: Observable; countdown$: Observable; GET_error$: BehaviorSubject; POST_error$: BehaviorSubject; PUT_error$: BehaviorSubject; PATCH_error$: BehaviorSubject; DELETE_error$: BehaviorSubject; STREAM_error$: BehaviorSubject; STREAM_AI_error$: BehaviorSubject; GET$: BehaviorSubject; POST$: BehaviorSubject; PUT$: BehaviorSubject; PATCH$: BehaviorSubject; DELETE$: BehaviorSubject; STREAM: BehaviorSubject; STREAM$: Observable; STREAM_AI: BehaviorSubject<{ response: string; }[]>; STREAM_AI$: Observable; failedState: any; pollingState: any; DBState: any; questionControl: FormControl; requestType: string; prompts: string[]; AIType: number; wsMessageForm: _angular_forms.FormGroup<{ channel: FormControl; method: FormControl; path: FormControl; }>; get dataObservable$(): BehaviorSubject | BehaviorSubject | BehaviorSubject<{ response: string; }[]>; sampleClientData: { id: number; name: string; domain: string; service: string; spiffe: string; secret: string; created: number; modified: number; icon: string; imageFile: string; }; selectedRecord: FormControl; requestForm: _angular_forms.FormGroup<{ datatype: FormControl; path: FormControl; headers: FormArray>; adapter: FormControl; mapper: FormControl; selector: FormControl; retry: _angular_forms.FormGroup<{ times: FormControl; delay: FormControl; }>; polling: FormControl; database: _angular_forms.FormGroup<{ table: FormControl; expiresIn: FormControl; ignoreQueryParams: FormControl; queryParamsExpiresIn: FormControl; deltaSync: FormControl; }>; }>; get hasChanged(): boolean; get dataType(): string | null | undefined; get database(): { table: string | null; expiresIn: string | null; ignoreQueryParams: string | null; queryParamsExpiresIn: string | null; deltaSync: boolean | null; } | undefined; get deltaSyncControl(): FormControl; get retry(): { times: number | null; delay: number | null; } | undefined; sampleAdaptors: ({ label: string; value: typeof ClientInfo$1.adapt; } | { label: string; value: typeof AIPrompt$1.adapt; })[]; sampleMappers: ({ label: string; value: typeof ClientInfoMapper$1.adapt; } | { label: string; value: typeof AIPrompt$1.adapt; })[]; get headers(): FormArray; get isValid(): boolean; arrayObjectsToObjects: (arr: any[]) => any; props: (adapter: any) => any; constructor(); ngOnInit(): void; onStreamType(type: string): void; addHeader(): void; removeHeader(index: number): void; private parsePathInput; private normalizeQueryValue; compileRequest(): { apiOptions: ApiRequest; path: any[]; }; private parseIgnoreParams; private buildDemoRequestOptions; onSetStateOptions(): void; onClearRecords(): void; deleteDatabase(): void; onGetRequest(): void; onCreateRequest(): void; onUpdateRequest(): void; onPatchRequest(): void; onDeleteRequest(): void; onStreamRequest(): void; errorHandling(err: any, type: string): void; onSelectAIType(type: number): void; onClearHistory(): void; onSendWsMessage(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class RequestManagerDemoComponent implements OnInit { server: string; adapter?: Function; mapper?: Function; streamTestServer: string; displayedColumns: string[]; getColumnsFromData(data: any[]): string[]; updateDisplayedColumns(data: any[]): void; isObject(value: any): boolean; private fb; private toastMessage; questionControl: _angular_forms.FormControl; httpManagerService: HTTPManagerService; isPending$: Observable; countdown$: Observable; GET_error$: BehaviorSubject; POST_error$: BehaviorSubject; PUT_error$: BehaviorSubject; PATCH_error$: BehaviorSubject; DELETE_error$: BehaviorSubject; STREAM_error$: BehaviorSubject; STREAM_AI_error$: BehaviorSubject; GET$?: Observable; POST$?: Observable; PUT$?: Observable; PATCH$?: Observable; DELETE$?: Observable; STREAM$?: Observable; STREAM_AI$?: Observable; parallelBatch$?: Observable; sequentialBatch$?: Observable; parallelExecutionTime?: number; sequentialExecutionTime?: number; parallelResults?: any[]; sequentialResults?: any[]; isParallelLoading: boolean; isSequentialLoading: boolean; parallelError?: string; sequentialError?: string; parallelBatchStates: (BatchRequestState | undefined)[]; sequentialBatchStates: (BatchRequestState | undefined)[]; streamBatchStates: (BatchRequestState | undefined)[]; streamProgress?: BatchProgress; streamExecutionTime?: number; isStreamLoading: boolean; streamError?: string; get filteredParallelStates(): BatchRequestState[]; get filteredSequentialStates(): BatchRequestState[]; get filteredStreamStates(): BatchRequestState[]; requestParams: { GET: ApiRequest; POST: ApiRequest; PUT: ApiRequest; PATCH: ApiRequest; DELETE: ApiRequest; STREAM: ApiRequest; }; streamTypes: { id: string; value: string; }[]; streamType: string; failedState: any; pollingState: any; downloadRequest: ApiRequest; sampleClientData: { id: number; name: string; domain: string; service: string; spiffe: string; secret: string; created: number; modified: number; icon: string; imageFile: string; email: string; }; sampleClientPatchData: { name: string; modified: number; }; requestForm: _angular_forms.FormGroup<{ path: _angular_forms.FormControl; headers: FormArray<_angular_forms.FormControl>; adapter: _angular_forms.FormControl; mapper: _angular_forms.FormControl; selector: _angular_forms.FormControl; retry: _angular_forms.FormGroup<{ times: _angular_forms.FormControl; delay: _angular_forms.FormControl; }>; polling: _angular_forms.FormControl; }>; AIType: number; sampleAdaptors: ({ label: string; value: typeof ClientInfo$1.adapt; } | { label: string; value: typeof AIPrompt$1.adapt; })[]; sampleMappers: ({ label: string; value: typeof ClientInfoMapper$1.adapt; } | { label: string; value: typeof AIPrompt$1.adapt; })[]; get retry(): { times: number | null; delay: number | null; } | undefined; get headers(): FormArray; get isValid(): boolean; hasId: (arr: any[]) => boolean; props: (adapter: any) => any; arrayObjectsToObjects: (arr: any[]) => any; constructor(); ngOnInit(): void; onStreamType(type: string): void; addHeader(): void; removeHeader(index: number): void; compileRequest(): { apiOptions: ApiRequest; path: string[]; }; onGetRequest(): void; onCreateRequest(): void; onUpdateRequest(): void; onPatchRequest(): void; onDeleteRequest(): void; onStreamPostRequest(): void; onStreamRequest(): void; onDownloadCompleted(): void; onDownloadFailed(err: string): void; errorHandling(err: any, type: string): void; onSelectAIType(type: number): void; /** * Execute parallel batch request - fetch 5 users from JSONPlaceholder with individual states */ onExecuteParallelBatch(): void; /** * Execute sequential batch request - fetch 5 todos from JSONPlaceholder with individual states */ onExecuteSequentialBatch(): void; /** * Execute stream batch request - fetch 5 posts with real-time state updates */ onExecuteStreamBatch(): void; /** * Type guard for pending state */ isPendingState(state: BatchRequestState): boolean; /** * Type guard for success state */ isSuccessState(state: BatchRequestState): boolean; /** * Type guard for error state */ isErrorState(state: BatchRequestState): boolean; /** * Helper to create batch requests from IDs */ private createBatchRequests; /** * Check if result is successful (not undefined) */ isSuccess(result: any): boolean; /** * Format execution time for display */ formatTime(ms: number): string; /** * Get success count from results array */ getSuccessCount(results?: any[]): number; /** * Get failure count from results array */ getFailureCount(results?: any[]): number; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface ClientInfoInterface { domain: string; service: string; id: number; name: string; } declare class ClientInfo implements ClientInfoInterface { domain: string; service: string; id: number; name: string; constructor(domain?: string, service?: string, id?: number, name?: string); static adapt(item?: any): ClientInfo; } interface ClientInfoMapperInterface { id: number; first_name: string; last_name: string; email: string; } declare class ClientInfoMapper implements ClientInfoMapperInterface { id: number; first_name: string; last_name: string; email: string; constructor(id?: number, first_name?: string, last_name?: string, email?: string); static adapt(item?: any): ClientInfoMapper; } interface AIPromptInterface { response: string; } declare class AIPrompt implements AIPromptInterface { response: string; constructor(response?: string); static adapt(item?: any): AIPrompt; } declare class RequestSignalsManagerDemoComponent implements OnInit { displayedColumns: string[]; private fb; private toastMessage; httpManagerService: HTTPManagerService; isPending: i0.WritableSignal; countdown: i0.WritableSignal; GET_result: any; POST_result: any; PUT_result: any; PATCH_result: any; DELETE_result: any; STREAM_result: any; STREAM_AI_result: any; GET_error: string; POST_error: string; PUT_error: string; PATCH_error: string; DELETE_error: string; STREAM_error: string; STREAM_AI_error: string; requestParams: { GET: ApiRequest; POST: ApiRequest; PUT: ApiRequest; PATCH: ApiRequest; DELETE: ApiRequest; STREAM: ApiRequest; }; failedState: any; pollingState: any; questionControl: _angular_forms.FormControl; downloadRequest: ApiRequest; sampleClientData: { id: number; name: string; domain: string; service: string; spiffe: string; secret: string; created: number; modified: number; icon: string; imageFile: string; email: string; }; requestForm: _angular_forms.FormGroup<{ path: _angular_forms.FormControl; headers: FormArray<_angular_forms.FormControl>; adapter: _angular_forms.FormControl; mapper: _angular_forms.FormControl; selector: _angular_forms.FormControl; retry: _angular_forms.FormGroup<{ times: _angular_forms.FormControl; delay: _angular_forms.FormControl; }>; polling: _angular_forms.FormControl; }>; AIType: number; sampleAdaptors: ({ label: string; value: typeof ClientInfo.adapt; } | { label: string; value: typeof AIPrompt.adapt; })[]; sampleMappers: ({ label: string; value: typeof ClientInfoMapper.adapt; } | { label: string; value: typeof AIPrompt.adapt; })[]; get retry(): { times: number | null; delay: number | null; } | undefined; get headers(): FormArray; get isValid(): boolean; hasId: (arr: any[]) => boolean; props: (adapter: any) => any; arrayObjectsToObjects: (arr: any[]) => any; constructor(); ngOnInit(): void; addHeader(): void; removeHeader(index: number): void; compileRequest(): { apiOptions: ApiRequest; path: string[]; }; onGetRequest(): void; onCreateRequest(): void; onUpdateRequest(): void; onPatchRequest(): void; onDeleteRequest(): void; onStreamPostRequest(): void; onStreamRequest(): void; onDownloadCompleted(): void; onDownloadFailed(err: string): void; errorHandling(err: any, type: string): any; onSelectAIType(type: number): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class LocalStorageDemoComponent implements OnInit { private configOptions?; fb: FormBuilder; utils: UtilsService; type$: BehaviorSubject; get type(): number; typeControl: _angular_forms.FormControl; localStorageManagerService: LocalStorageManagerService; settings$: Observable; setting$: (store: string) => Observable; storageForm: _angular_forms.FormGroup<{ store: _angular_forms.FormControl; type: _angular_forms.FormControl; settingType: _angular_forms.FormControl; encrypted: _angular_forms.FormControl; data: _angular_forms.FormControl; }>; newStoreForm: _angular_forms.FormGroup<{ name: _angular_forms.FormControl; storage: _angular_forms.FormControl; encrypted: _angular_forms.FormControl; data: _angular_forms.FormControl; expiresIn: _angular_forms.FormControl; }>; store$?: Observable; storeData$: Observable | undefined; expiresIn: (epoch: number) => string | undefined; get isValid(): boolean; get isValidData(): boolean; isValidJSON: (str: string) => boolean; displayedColumns: string[]; filterData: (values: SettingOptions[]) => SettingOptions[]; data$?: Observable; store: any; create: boolean; storeProps?: LocalStorageOptions; options?: SettingOptions; constructor(configOptions?: ConfigOptions | undefined); ngOnInit(): void; onCreateStore(): void; onUpdateStore(store: any): void; onSelectedRow(store: any): void; onCreate(): void; onDelete(store: StorageOption): void; onCancel(): void; onUpdate(store: StorageOption, data: any): void; onReset(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } /** * StateServiceDemo - Core state management and WebSocket connection service * * Handles: * - WebSocket connection setup * - Base HTTP state management * - Connection status and retry logic */ declare class StateServiceDemo extends HTTPManagerStateService { attempts$: rxjs.Observable; nextRetry$: rxjs.Observable; constructor(); /** * Initialize WebSocket connection with server configuration * @param server - Backend server URL * @param wsServer - WebSocket server URL * @param jwtToken - JWT authentication token * @param user - User information * @param path - Path for constructing channel name (e.g., ['items']) */ updateConnection(server: string, wsServer: string, jwtToken: string, user: any, path?: (string | number)[]): void; /** * Get all available channels */ getAllChannels(): void; /** * Subscribe to a channel */ subscribeToChannel(channel: string): void; /** * Unsubscribe from a channel */ unsubscribeFromChannel(channel: string): void; /** * Create a notification channel (MES- prefix) */ createNotificationChannel(channel: string): void; /** * Get all notification channels list (in-memory) */ getNotificationChannels(): void; /** * Get today's notification channels from database * Returns unique channels that have notifications posted today */ getTodaysNotificationChannels(): void; /** * Define and load previous day's notification channels from database * Creates channels in memory and broadcasts updated list */ definePreviousNotificationChannels(): void; /** * Subscribe to notification channel with optional date filters */ subscribeToNotificationChannel(channel: string, options?: { startEpoch?: number; endEpoch?: number; }, user?: any): void; /** * Unsubscribe from notification channel */ unsubscribeFromNotificationChannel(channel: string): void; /** * Send a notification to a channel */ sendNotification(channel: string, content: any): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * MessageServiceDemo - Channel messaging service (PUB- prefix channels) * * Handles: * - Sending messages to channels * - Channel subscription for messaging * - Real-time message broadcast */ declare class MessageServiceDemo { private stateService; channels$: rxjs.Observable; subscribedChannels$: rxjs.Observable>; communicationMessages$: rxjs.Observable; latestCommunicationMessages$: rxjs.Observable; connectionStatus$: rxjs.Observable; user$: rxjs.Observable; data$: rxjs.Observable; /** * Helper to ensure channel has PUB- prefix */ private toPublicChannel; /** * Helper to strip PUB- prefix for display */ private fromPublicChannel; /** * Create a new public channel */ createChannel(channel: string): void; /** * Get all available channels */ getAllChannels(): void; /** * Subscribe to a channel to receive messages */ subscribeToChannel(channel: string): void; /** * Unsubscribe from a channel */ unsubscribeFromChannel(channel: string): void; /** * Send a message to one or more channels */ sendMessage(data: ChannelMessage, channels?: string[]): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } /** * NotificationServiceDemo - Notification channel service (MES- prefix channels) * * Handles: * - Creating notification channels * - Subscribing to notifications with date filters * - Sending notifications (persisted to database) * - Receiving real-time and historical notifications */ declare class NotificationServiceDemo { private stateService; notificationChannels$: rxjs.Observable; todaysNotificationChannels$: rxjs.Observable; private subscribedNotificationChannelsSubject; subscribedNotificationChannels$: rxjs.Observable>; notificationMessages$: rxjs.Observable; latestNotification$: rxjs.Observable; connectionStatus$: rxjs.Observable; /** * Create a notification channel * NOTE: MES- prefix is added automatically by HTTPManagerStateService */ createNotificationChannel(channel: string): void; /** * Get all notification channels (in-memory) */ getNotificationChannels(): void; /** * Get today's notification channels from database * Returns unique channels that have notifications posted today */ getTodaysNotificationChannels(): void; /** * Define and load previous day's notification channels from database * Creates channels in memory and broadcasts updated list */ definePreviousNotificationChannels(): void; /** * Subscribe to a notification channel with optional date filter * NOTE: MES- prefix is added automatically by HTTPManagerStateService * @param channel Base channel name (without MES- prefix) * @param options { startEpoch?, endEpoch? } * @param user User info for subscription */ subscribeToNotificationChannel(channel: string, options?: { startEpoch?: number; endEpoch?: number; }, user?: any): void; /** * Unsubscribe from a notification channel * NOTE: MES- prefix is added automatically by HTTPManagerStateService */ unsubscribeFromNotificationChannel(channel: string): void; /** * Send a notification to a channel * NOTE: MES- prefix is added automatically by HTTPManagerStateService */ sendNotification(channel: string, content: any, user?: any): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class RequestManagerWsDemoComponent implements OnInit, OnChanges { httpManagerService: HTTPManagerService; stateService: StateServiceDemo; fb: FormBuilder; server: string; wsServer: string; jwtToken: string; user: any; path: string[]; retryCount$: rxjs.Observable; maxRetries$: rxjs.Observable; connectionStatus$: rxjs.Observable; isConnecting$: rxjs.Observable; connectionError$: rxjs.Observable; data$: rxjs.Observable; isPending$: rxjs.Observable; users$: rxjs.Observable; user$: rxjs.Observable; wsServerControl: FormControl; isUser: (user: any, userItem: any) => boolean; getUserLabel: (user: any) => any; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; onConnect(): void; onDisconnect(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class SettingsStateService extends StoreStateManagerService { constructor(); updateEnum_1(value: any): void; updateEnum_2(value: any): void; getEnum(key: string): rxjs.Observable; getEnum_1(): rxjs.Observable; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface CounterStateInterface { count: number; } declare class CounterState implements CounterStateInterface { count: number; constructor(count?: number); static adapt(item?: any): CounterState; } declare class CounterStateService extends StoreStateManagerService { constructor(); increment(): void; decrement(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } interface TodoListStateInterface { items: string[]; } declare class TodoListState implements TodoListStateInterface { items: string[]; constructor(items?: string[]); static adapt(item?: any): TodoListState; } declare class TodoListStateService extends StoreStateManagerService { constructor(); addItem(item: string): void; clear(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class StoreStateManagerDemoComponent implements OnInit { settingsStateService: SettingsStateService; dataState$: rxjs.Observable; dataEnum$: rxjs.Observable; counterStateService: CounterStateService; counterState$: rxjs.Observable; todoListStateService: TodoListStateService; todoListState$: rxjs.Observable; ngOnInit(): void; onUpdateEnum_1(): void; onUpdateEnum_2(): void; onGetEnum_1(): void; onIncrement(): void; onDecrement(): void; onResetCounter(): void; onAddTodoItem(item: string): void; onClearTodoList(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface TableRecord { id: number; last_name: string; age: number; amount: number; } declare class DatabaseDataDemoComponent implements OnInit, OnDestroy { db: DatabaseManagerService; sql: DexieSqlService; private destroy$; dataToDisplay: TableRecord[]; dataSource: DatabaseDataSource; displayedColumns: string[]; names: string[]; sqlQuery: string; sqlResults: any[]; sqlResultCols: string[]; sqlError: string | null; sqlLoading: boolean; constructor(); ngOnDestroy(): void; addData(): void; removeData(): void; updateData(): void; clearAllData(): void; private refreshData; ngOnInit(): void; createTable(tableDef: TableSchemaDef): Observable; findTableRecords(table: string, column: string, value: any): Observable; findTableRecord(table: string, column: string, value: any): Observable; getTableRecords(table: string): Observable; getTableRecord(table: string, id: number): Observable; createTableRecord(table: string, record: T): Observable; updateTableRecord(table: string, record: T): Observable; deleteTableRecord(table: string, id: number): Observable; runSqlQuery(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class DatabaseDataSource extends DataSource { private _dataStream; constructor(initialData: TableRecord[]); connect(): Observable; disconnect(): void; setData(data: TableRecord[]): void; } declare class StateDataRequestService extends HTTPManagerStateService { attempts$: rxjs.Observable; nextRetry$: rxjs.Observable; path: (string | number)[]; constructor(); updateConnection(server: string, wsServer: string, jwtToken: string, user: any, path?: (string | number)[]): void; addData(): void; sendMessage(data: ChannelMessage): void; getData(): void; updateData(data: any): void; deleteData(data: any): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class WsDataControlComponent implements OnInit, OnChanges { server: string; wsServer: string; jwtToken: string; user: any; path: (string | number)[]; stateDataRequestService: StateDataRequestService; webSocketMessageService: WebSocketMessageService; userAction$: rxjs.Observable; data$: rxjs.Observable; ngOnInit(): void; ngOnChanges(changes: SimpleChanges): void; onGetData(): void; onAddData(): void; onUpdateData(data: any[]): void; onRemoveData(data: any): void; /** * Test direct state message via WebSocketMessageService * Sends an UPDATE message that should trigger fetchRecord() in the state manager * * @param recordId - The record ID to update (default: 63) * @param useFakeSessionId - If true, uses a fake sessionId to avoid filtering (default: true) * @param customSessionId - Optional custom sessionId (overrides useFakeSessionId if provided) */ onTestDirectStateMessage(recordId?: number, useFakeSessionId?: boolean, customSessionId?: string): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface SlideInterface { title: string; message: string; image?: string; icon?: string; } declare class Slide implements SlideInterface { title: string; message: string; image?: string | undefined; icon?: string | undefined; constructor(title?: string, message?: string, image?: string | undefined, icon?: string | undefined); static adapt(item?: any): Slide; } interface ActionInterface { label: string; action: 'close' | 'navigate' | 'callback' | 'custom'; target?: string; callback?: string; primary?: boolean; } declare class Action implements ActionInterface { label: string; action: 'close' | 'navigate' | 'callback' | 'custom'; target?: string | undefined; callback?: string | undefined; primary?: boolean | undefined; constructor(label?: string, action?: 'close' | 'navigate' | 'callback' | 'custom', target?: string | undefined, callback?: string | undefined, primary?: boolean | undefined); static adapt(item?: any): Action; } type DisplayType = 'snackbar' | 'dialog' | 'carousel' | 'banner' | 'inline'; interface DisplayConfigInterface { type: DisplayType; supportsMarkdown?: boolean; stackable?: boolean; queueBehavior?: 'replace' | 'queue' | 'ignore'; autoDismiss?: number; width?: string; height?: string; } declare class DisplayConfig implements DisplayConfigInterface { type: DisplayType; supportsMarkdown?: boolean | undefined; stackable?: boolean | undefined; queueBehavior?: "replace" | "queue" | "ignore" | undefined; autoDismiss?: number | undefined; width?: string | undefined; height?: string | undefined; constructor(type?: DisplayType, supportsMarkdown?: boolean | undefined, stackable?: boolean | undefined, queueBehavior?: "replace" | "queue" | "ignore" | undefined, autoDismiss?: number | undefined, width?: string | undefined, height?: string | undefined); static adapt(item?: any): DisplayConfig; } interface MessageContentInterface { displayConfig?: DisplayConfig; title?: string; message: string; slides?: Slide[]; image?: string; images?: string[]; actions?: Action[]; messageType?: string; icon?: string; data?: any; } declare class MessageContent implements MessageContentInterface { displayConfig?: DisplayConfig | undefined; title?: string | undefined; message: string; slides?: Slide[] | undefined; image?: string | undefined; images?: string[] | undefined; actions?: Action[] | undefined; messageType?: string | undefined; icon?: string | undefined; data?: any | undefined; constructor(displayConfig?: DisplayConfig | undefined, title?: string | undefined, message?: string, slides?: Slide[] | undefined, image?: string | undefined, images?: string[] | undefined, actions?: Action[] | undefined, messageType?: string | undefined, icon?: string | undefined, data?: any | undefined); static adapt(item?: any): MessageContent; } interface CommunicationMessageInterface { type: string; messageId?: number; channel?: string; sessionId?: { id: string; }; timestamp?: string; content: MessageContent; } declare class CommunicationMessage implements CommunicationMessageInterface { type: string; messageId?: number | undefined; channel?: string | undefined; sessionId?: { id: string; } | undefined; timestamp?: string | undefined; content: MessageContent; constructor(type?: string, messageId?: number | undefined, channel?: string | undefined, sessionId?: { id: string; } | undefined, timestamp?: string | undefined, content?: MessageContent); static adapt(item?: any): CommunicationMessage; } interface IDisplayStrategy { name: string; canHandle(message: CommunicationMessage): boolean; display(message: CommunicationMessage, config: DisplayConfig): void; } interface DisplayRuleInterface { id: string; name?: string; match: (message: CommunicationMessage) => boolean; display: DisplayConfig; } declare class DisplayRule implements DisplayRuleInterface { id: string; name?: string | undefined; match: (message: CommunicationMessage) => boolean; display: DisplayConfig; constructor(id?: string, name?: string | undefined, match?: (message: CommunicationMessage) => boolean, display?: DisplayConfig); static adapt(item?: any): DisplayRule; } declare class MessageDisplayRouterService { private snackbarStrategy; private strategies; private rules; display(message: CommunicationMessage): void; registerStrategies(strategies: IDisplayStrategy[]): void; setRules(rules: DisplayRule[]): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class WsMessagingComponent implements OnInit, OnDestroy { server: string; wsServer: string; jwtToken: string; user: any; path: (string | number)[]; private destroy$; fb: FormBuilder; messageService: MessageServiceDemo; stateService: StateServiceDemo; messageDisplayService: MessageDisplayRouterService; channels$: Observable; subscribedChannels$: Observable; user$: Observable; data$: Observable; connectionStatus$: Observable; newChannelName: FormControl; messages: _angular_forms.FormGroup<{ selectedChannels: FormControl; content: FormControl; }>; get selectedChannels(): FormControl; get content(): FormControl; communicationMessages$: Observable; latestCommunicationMessages$: Observable; chat$: Observable<{ user: any; messages: any[]; } | any>; ngOnInit(): void; ngOnDestroy(): void; /** * Create a new public channel without auto-subscribing * NOTE: PUB- prefix is added by messageService.createChannel */ onCreateChannel(): void; /** * Subscribe to a channel to receive messages * NOTE: PUB- prefix is added by messageService.subscribeToChannel */ onSubscribeToChannel(channel: string): void; /** * Unsubscribe from a channel * NOTE: PUB- prefix is added by messageService.unsubscribeFromChannel */ onUnsubscribeFromChannel(channel: string): void; /** * Channels the user has clicked but whose subscribe/unsubscribe confirmation * hasn't arrived yet, keyed by channel with the intended (optimistic) selected * state. Lets isSubscribed() reflect a click immediately instead of the stale * subscribedChannels$ value a change-detection cycle would otherwise re-assert * during the server round-trip, which is what caused the chip to visibly * flicker back and require repeated clicks. */ private pendingChipSelections; /** * Handle chip toggle for subscribe/unsubscribe */ onChipToggle(event: any, channel: string): void; /** * Check if currently subscribed to a channel * Compares display names (without PUB- prefix) */ isSubscribed(channel: string, subscribedChannels: string[]): boolean; onSendMessage(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class WsNotificationsComponent implements OnInit, OnDestroy { server: string; wsServer: string; jwtToken: string; user: any; private destroy$; fb: FormBuilder; notificationService: NotificationServiceDemo; stateService: StateServiceDemo; todaysNotificationChannels$: rxjs.Observable; subscribedNotificationChannels$: rxjs.Observable; notificationMessages$: rxjs.Observable; connectionStatus$: rxjs.Observable; /** * Helper to ensure channel has MES- prefix for outgoing communication */ private toNotificationChannel; newChannelName: FormControl; selectedConnectionChannel: FormControl; connectedChannel: string | null; displayedColumns: string[]; dateFilter: _angular_forms.FormGroup<{ startDate: FormControl; endDate: FormControl; }>; notificationForm: _angular_forms.FormGroup<{ content: FormControl; }>; get content(): FormControl; /** * Check if currently connected to a channel */ isChannelConnected(subscribedChannels: string[]): boolean; /** * Connect to the selected channel */ onConnectToChannel(): void; /** * Disconnect from the current channel */ onDisconnectFromChannel(): void; ngOnInit(): void; ngOnDestroy(): void; /** * Create a new notification channel */ onCreateChannel(): void; /** * Define and load previous channels */ onDefinePreviousChannels(): void; /** * Subscribe to a notification channel with optional date filter */ onSubscribeToChannel(channel: string): void; /** * Unsubscribe from a notification channel */ onUnsubscribeFromChannel(channel: string): void; /** * Check if currently subscribed to a channel */ isSubscribed(channel: string, subscribedChannels: string[]): boolean; /** * Handle chip click - toggle subscription state */ onChipClick(channel: string, subscribedChannels: string[]): void; /** * Send a notification */ onSendNotification(): void; /** * Format epoch timestamp to readable date/time */ formatTimestamp(epoch: number): string; /** * Get today's date in YYYY-MM-DD format for date input default */ getTodayDate(): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class WsAiMessagingComponent implements OnInit { constructor(); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class WsChatsComponent implements OnInit { constructor(); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class UploadStateModel { private readonly stateChanged$; private readonly _selectedFiles; private readonly _isUploading; private readonly _progress; private readonly _currentFile; private readonly _errorMessage; private readonly _successMessage; readonly selectedFiles: Signal; readonly isUploading: Signal; readonly progress: Signal; readonly currentFile: Signal; readonly errorMessage: Signal; readonly successMessage: Signal; readonly selectedFiles$: Observable; readonly isUploading$: Observable; readonly progress$: Observable; readonly currentFile$: Observable; readonly errorMessage$: Observable; readonly successMessage$: Observable; constructor(selectedFiles?: File[], isUploading?: boolean, progress?: number, currentFile?: string | null, errorMessage?: string | null, successMessage?: string | null); static adapt(item?: any): UploadStateModel; private toSyncObservable; setSelectedFiles(files: File[]): void; setUploading(isUploading: boolean): void; setProgress(progress: number): void; setCurrentFile(currentFile: string | null): void; setError(errorMessage: string | null): void; setSuccess(successMessage: string | null): void; clear(): void; } interface FileTypeOptionInterface { id: string; value: string; } declare class UploadDemoComponent implements OnInit, OnDestroy { private httpManager; uploadState: UploadStateModel; fileTypeOptions: FileTypeOptionInterface[]; acceptedTypeIds: string[]; maxFileSize: number; uploadMode: 'single' | 'multiple'; ngOnInit(): void; ngOnDestroy(): void; onUploadModeChange(mode: 'single' | 'multiple'): void; onFileSelected(event: Event): void; onFileTypesChanged(event: MatSelectionListChange): void; validateFile(file: File): string | null; getAcceptedTypeLabels(): string; clearSelection(): void; startUpload(): void; getFileSizeString(size: number): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } type DownloadQueueStatus = 'pending' | 'downloading' | 'done' | 'error'; interface DownloadQueueItemInterface { url: string; fileName: string; status: DownloadQueueStatus; } declare class DownloadQueueItemModel implements DownloadQueueItemInterface { url: string; fileName: string; status: DownloadQueueStatus; constructor(url?: string, fileName?: string, status?: DownloadQueueStatus); static adapt(item?: any): DownloadQueueItemModel; } declare class DownloadDemoComponent { private http; singleDownloadRequest: ApiRequest; downloadUrls: string[]; downloadQueue: DownloadQueueItemModel[]; isDownloadingAll: boolean; downloadAllAsZip(): void; private fetchQueuedFile; private buildZip; private saveBlob; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class SpinnerComponent implements OnInit { color: ThemePalette; diameter?: number; display?: string | number; mode?: ProgressSpinnerMode; strokeWidth?: number; value: number; constructor(); ngOnInit(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class DownloadFileComponent implements OnInit { private subscriptions; event?: Function; displayError: number; diameter: number; mode: ProgressSpinnerMode; isPending: boolean; active: boolean; disabled: boolean; error: EventEmitter; private _progress; set progress(value: any); get progress(): any; private _hasError; private errorTimerActive; set hasError(value: boolean | any); get hasError(): boolean | any; ngOnInit(): void; onAction(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface DownloadLabelsInterface { error: string; action: string; icon: string; } declare class DownloadLabels implements DownloadLabelsInterface { error: string; action: string; icon: string; constructor(error?: string, action?: string, icon?: string); static adapt(item?: any): DownloadLabelsInterface; } declare class FileDownloaderComponent extends HTTPManagerService implements OnInit { delayError: number; apiRequest: ApiRequest; displayErrorMessage: boolean; saveFileAs?: string; _labels: DownloadLabelsInterface; set labels(value: DownloadLabels); active: boolean; subscription: Subscription; get labels(): DownloadLabels; completed: EventEmitter; failed: EventEmitter; disabled: boolean; constructor(); ngOnInit(): void; onDownloadStreaming(): Subscription | undefined; onError(message: string): void; OnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class FileDownloaderModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare class HttpRequestManagerModule { static forRoot(config?: ConfigOptions): ModuleWithProviders; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { ApiRequest, BatchOptions, BatchResult, CONFIG_SETTINGS_TOKEN, ChannelType, ConfigHTTPOptions, ConfigOptions, DataType, DatabaseDataDemoComponent, DatabaseManagerService, DatabaseStorage, DbService, DexieSqlService, DownloadDemoComponent, ErrorDisplaySettings, ExecutionPlanType, GlobalStoreOptions, HTTPManagerService, HTTPManagerStateService, HeadersService, HttpRequestManagerModule, HttpRequestServicesDemoComponent, InvalidFileInfoModel, LocalStorageDemoComponent, LocalStorageManagerService, LocalStorageOptions, LoggerService, NotificationMessage, OWNS_ERROR_DISPLAY, ObjectMergerService, OperationResultModel, PROXY_CONFIG, ParsingResultModel, PathQueryService, ProxyDebuggerInterceptor, PublicMessage, RandomHSLColor, RandomHexColor, RandomPaletteColor, RandomVisibleColor, RequestErrorInterceptor, RequestHeadersInterceptor, RequestManagerDemoComponent, RequestManagerStateDemoComponent, RequestOptions, RequestService, RetryOptions, SettingOptions, SqlParseError, SqlValidationError, StateMessage, StateOperationResult, StateStorageOptions, StorageData, StorageOption, StorageType, StoreStateManagerService, StreamConfigModel, StreamEventMetadataModel, StreamEventModel, StreamOutputModel, StreamProgressModel, StreamType, TableSchemaDef, UploadDemoComponent, UploadValidationErrorModel, UserData, UtilsService, WSOptions, WebSocketMessageService, WithCredentialsInterceptor, calculateBatchProgress, countdown, createChannelName, delayedRetry, httpRequestManagerInterceptors, isErrorState, isPendingState, isSuccessState, proxyDebuggerInterceptorFn, requestErrorInterceptorFn, requestHeadersInterceptorFn, requestPolling, requestStreaming, streamAI, streamAuto, streamEvents, streamJSON, streamNDJSON, toSyncObservable, withCredentialsInterceptorFn }; export type { APIStateManagerData, ApiRequestInterface, BatchErrorState, BatchOptionsInterface, BatchPendingState, BatchProgress, BatchRequestState, BatchResultInterface, BatchSuccessState, ConfigHTTPOptionsInterface, ConfigOptionsInterface, DatabaseStorageInterface, DexieOp, DexieSqlOptions, ErrorDisplaySettingsInterface, ExecutionPlan, GlobalStoreOptionsInterface, InvalidFileInfoInterface, JoinInfo, LocalStorageOptionsInterface, NotificationMessageInterface, OperationResultInterface, ParseResult, ParsingResultInterface, PlanStep, PublicMessageInterface, RequestOptionsInterface, RetryOptionsInterface, SettingOptionsInterface, State, StateMessageInterface, StateOperationResultInterface, StateStorageOptionsInterface, StateStoreManagerData, StorageDataInterface, StorageOptionInterface, StreamConfigInterface, StreamEventInterface, StreamEventMetadataInterface, StreamOutputInterface, StreamProgressInterface, TableRecord, TableSchemaDefInterface, TableSchemaInfo, UploadValidationErrorInterface, UserDataInterface, ValidatedQuery, WSOptionsInterface };