/**
 * @fileoverview Agent Requests Resource Component
 *
 * Dashboard resource for the AI application's "Requests" tab.
 * Displays all agent feedback requests with filtering by status, priority,
 * request type, and agent. Opens the generic agent-request-panel for
 * viewing details and responding.
 */
import { ChangeDetectorRef, OnDestroy, AfterViewInit } from '@angular/core';
import { Subject } from 'rxjs';
import { ResourceData } from '@memberjunction/core-entities';
import { MJAIAgentRequestEntity, MJAIAgentRequestTypeEntity } from '@memberjunction/core-entities';
import { BaseResourceComponent } from '@memberjunction/ng-shared';
import { AgentRequestPanelResult } from '@memberjunction/ng-agent-requests';
import { FilterFieldConfig } from '@memberjunction/ng-ui-components';
import * as i0 from "@angular/core";
interface RequestFilter {
    SearchTerm: string;
    Status: string;
    RequestType: string;
    Priority: string;
}
export declare class AgentRequestsResourceComponent extends BaseResourceComponent implements AfterViewInit, OnDestroy {
    private cdr;
    private readonly USER_SETTINGS_KEY;
    private settingsPersistSubject;
    protected destroy$: Subject<void>;
    private settingsLoaded;
    IsLoading: boolean;
    Requests: MJAIAgentRequestEntity[];
    FilteredRequests: MJAIAgentRequestEntity[];
    RequestTypes: MJAIAgentRequestTypeEntity[];
    SelectedRequest: MJAIAgentRequestEntity | null;
    ShowRequestPanel: boolean;
    Filters: RequestFilter;
    StatusOptions: string[];
    PriorityOptions: {
        Label: string;
        Value: string;
    }[];
    private searchSubject;
    constructor(cdr: ChangeDetectorRef);
    ngAfterViewInit(): Promise<void>;
    ngOnDestroy(): void;
    GetResourceDisplayName(data: ResourceData): Promise<string>;
    GetResourceIconClass(data: ResourceData): Promise<string>;
    /** Count of pending (Requested) items */
    get PendingCount(): number;
    /** Open the detail panel for a request */
    OnRequestClick(request: MJAIAgentRequestEntity): void;
    /** Handle panel close */
    OnPanelClose(result: AgentRequestPanelResult): void;
    /** Handle search input */
    OnSearchChange(term: string): void;
    /** Handle filter changes */
    OnFilterChange(): void;
    /** Clear all filters */
    ClearFilters(): void;
    /** Reset only the popover filters (Status/Type/Priority) — leave SearchTerm alone. */
    resetPopoverFilters(): void;
    /** Number of currently-applied filter criteria inside the popover (excludes SearchTerm — surfaced separately). */
    get ActiveFilterCount(): number;
    /** Values record consumed by the centralized <mj-filter-panel>. */
    get requestFilterValues(): Record<string, unknown>;
    /** Field config consumed by the centralized <mj-filter-panel>. */
    get requestFilterFields(): FilterFieldConfig[];
    /** Receive the updated values record from <mj-filter-panel> and apply it. */
    onFilterValuesChange(values: Record<string, unknown>): void;
    /** Get the request type name by ID */
    GetRequestTypeName(typeId: string | null): string;
    /** Get the request type icon by ID */
    GetRequestTypeIcon(typeId: string | null): string;
    /** Get priority label from numeric value */
    GetPriorityLabel(priority: number): string;
    /** Get priority CSS class from numeric value */
    GetPriorityClass(priority: number): string;
    /** Whether a request is expired */
    IsExpired(request: MJAIAgentRequestEntity): boolean;
    /**
     * If a requestId was passed via configuration (e.g. from a notification click),
     * auto-open that request in the detail panel.
     */
    private autoOpenRequestFromQueryParams;
    private loadData;
    private applyFilters;
    private setupSearchDebounce;
    private loadUserSettings;
    private saveUserSettings;
    private persistUserSettings;
    static ɵfac: i0.ɵɵFactoryDeclaration<AgentRequestsResourceComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AgentRequestsResourceComponent, "app-agent-requests-resource", never, {}, {}, never, never, false, never>;
}
export declare function LoadAgentRequestsResource(): void;
export {};
//# sourceMappingURL=agent-requests-resource.component.d.ts.map