/**
 * @fileoverview Realtime Voice — sessions management grid.
 *
 * Every long-lived `MJ: AI Agent Sessions` row across the platform — live
 * calls, idle holds, and closed history — with the channels each session
 * opened and the agent runs it delegated. KPI strip up top, a filter bar
 * (search · status · target agent · user · host), the data grid (Agent →
 * Target, status pills incl. the persisted close cause — explicit / janitor /
 * shutdown / error / unknown-legacy, channel icons, run count, tokens / cost,
 * started, duration, host instance), and row drill-in to the session record.
 */
import { OnInit } from '@angular/core';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import { KPICardData } from '../../widgets/kpi-card.component';
import * as i0 from "@angular/core";
interface SessionGridRow {
    ID: string;
    Agent: string;
    Target: string;
    User: string;
    Status: string;
    StatusLabel: string;
    StatusClass: string;
    StatusTitle: string;
    /** Pill icon (close cause for Closed rows); empty for Active, which renders the live dot. */
    StatusIcon: string;
    IsResumed: boolean;
    ChannelIcons: {
        Icon: string;
        Name: string;
    }[];
    ChannelCount: number;
    Runs: number;
    Tokens: string;
    Cost: string;
    Started: string;
    StartedAt: Date;
    Duration: string;
    Host: string;
    SearchText: string;
}
interface SelectOption {
    Value: string;
    Label: string;
}
export declare class AnalyticsRealtimeSessionsComponent extends BaseAngularComponent implements OnInit {
    private _timeRange;
    set TimeRange(value: string);
    get TimeRange(): string;
    private initialized;
    private cdr;
    private dataset;
    private allRows;
    IsLoading: boolean;
    KPICards: KPICardData[];
    FilteredRows: SessionGridRow[];
    PagedRows: SessionGridRow[];
    TargetOptions: SelectOption[];
    UserOptions: SelectOption[];
    HostOptions: SelectOption[];
    SearchTerm: string;
    StatusFilter: string;
    TargetFilter: string;
    UserFilter: string;
    HostFilter: string;
    PageIndex: number;
    get LiveCount(): number;
    get IdleCount(): number;
    get ClosedCount(): number;
    get PageCount(): number;
    ngOnInit(): void;
    /** Reloads everything for the current time range. */
    LoadData(): Promise<void>;
    /** Opens the AIAgentSession record via the shared Explorer record-open path. */
    OpenSession(sessionId: string): void;
    OnSearchChanged(event: Event): void;
    OnStatusFilterChanged(event: Event): void;
    OnTargetFilterChanged(event: Event): void;
    OnUserFilterChanged(event: Event): void;
    OnHostFilterChanged(event: Event): void;
    PrevPage(): void;
    NextPage(): void;
    private buildRows;
    private toGridRow;
    private buildKPICards;
    private buildFilterOptions;
    private applyFilters;
    private applyPaging;
    static ɵfac: i0.ɵɵFactoryDeclaration<AnalyticsRealtimeSessionsComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<AnalyticsRealtimeSessionsComponent, "app-analytics-realtime-sessions", never, { "TimeRange": { "alias": "TimeRange"; "required": false; }; }, {}, never, never, false, never>;
}
export declare function LoadAnalyticsRealtimeSessions(): void;
export {};
//# sourceMappingURL=realtime-sessions.component.d.ts.map