import { HttpClient } from "@angular/common/http"; import { QueueModel } from "../models/queue.model"; import { QueueStore } from "./queue.store"; import { Observable } from "rxjs"; import { BaseService } from "../../shared/state/base.service"; import { AppConfigService } from "../../shared/services/app-config.service"; import { ListService } from "../../shared/services/list.service"; import * as i0 from "@angular/core"; /** * Service for managing queue-related operations such as retrieving, * searching, and storing queue data in the QueueStore. */ export declare class QueueService extends BaseService { queueStore: QueueStore; private recordCache; private readonly CACHE_TTL_MS; private buildCacheKey; clearCache(apiConfig?: string): void; /** * Creates an instance of QueueService. * @param {QueueStore} queueStore - The store that manages the QueueModel state * @param {HttpClient} http - Angular HttpClient for making HTTP requests * @param {AppConfigService} appConfigService - Service for accessing application configuration * @param {ListService} listService - Service for handling list-related operations */ constructor(queueStore: QueueStore, http: HttpClient, appConfigService: AppConfigService, listService: ListService); /** * Fetches queue records using the provided apiConfig URL and optional params. * @param {string} apiConfig - The full API endpoint to fetch records for the selected queue * @param {any} [params] - Optional query parameters as an object * @returns {Observable} Observable emitting the queue records */ getQueueRecordsByApiConfig(apiConfig: string, params?: any): Observable; /** * Fetches paginated queue records using the provided apiConfig URL with search and pagination support. * This is the unified method used for both initial data loading and search functionality. * Uses POST method with underwriterIds and unassigned in body, other params in query string. * @param {string} apiConfig - The full API endpoint to fetch records for the selected queue * @param {string} [searchKey] - Optional search term * @param {number} [page] - Page number (default: 1) * @param {number} [limit] - Number of records per page (default: 10) * @param {string} [query] - Optional query string for filtering * @param {string} [sortBy] - Optional sort field * @param {string} [sortOrder] - Optional sort order ('asc' or 'desc') * @param {boolean} [useCache] - Whether to serve from / write to cache (default: true) * @returns {Observable} Observable emitting the paginated queue records */ getPaginatedQueueRecords(apiConfig: string, searchKey?: string, page?: number, limit?: number, query?: string, sortBy?: string, sortOrder?: string, useCache?: boolean): Observable; /** * Fetches all queue entities from the configured data source. * The entities are stored in the queueStore upon retrieval. * @returns {Observable} Observable emitting the fetched queue entities */ getAllQueue(): Observable; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; }