/**
 * @fileoverview Realtime management section — the whole realtime + bridge
 * surface (§11b of the Realtime Bridges architecture) in one place.
 *
 * Hosts an internal sub-tab rail across seven surfaces:
 *  1. Live Sessions   — active session bridges (Connecting/Connected) joined
 *                       with their session: agent, provider, turn mode,
 *                       participant count, started-at.
 *  2. Bridge Providers — the platform registry with a compact capability
 *                       summary derived from `SupportedFeaturesObject`.
 *  3. Agent Identities — which agents are reachable where (mailboxes, numbers).
 *  4. Channels         — the `MJ: AI Agent Channels` registry + which providers
 *                       contribute them.
 *  5. Co-Agents        — the `MJ: AI Agent Co Agents` pairing registry.
 *  6. Session History  — closed/terminal session bridges with close reason.
 *  7. Metrics          — client-side aggregates (by provider / status / agent;
 *                       bridges-over-time bucketed per day).
 *
 * Read-only for v1. Data loads once per `TimeRange` change via one batched
 * `RunViews` in {@link LoadRealtimeManagementDataset}; everything else is
 * in-memory aggregation. The selected sub-tab persists via `UserInfoEngine`
 * under `mj.realtimeDashboard.subTab`.
 */
import { OnInit } from '@angular/core';
import { BaseAngularComponent } from '@memberjunction/ng-base-types';
import { BridgeProviderRollup, SessionBridgeRollup, BridgeAgentIdentityRecord, AgentChannelRecord, BridgeProviderChannelRecord, AgentCoAgentRecord, SessionBridgeDayBucket, MetricSlice, CapabilityChip, BridgeTypeIcon, IdentityTypeIcon, TransportTypeIcon, FormatBridgeDuration, FormatBridgeStart } from './realtime-management-data';
import * as i0 from "@angular/core";
/** The seven management sub-tabs. */
type RealtimeSubTab = 'live-sessions' | 'providers' | 'identities' | 'channels' | 'co-agents' | 'history' | 'metrics';
interface SubTabDef {
    Key: RealtimeSubTab;
    Label: string;
    Icon: string;
}
export declare class RealtimeManagementComponent extends BaseAngularComponent implements OnInit {
    private _timeRange;
    set TimeRange(value: string);
    get TimeRange(): string;
    private initialized;
    private cdr;
    private dataset;
    IsLoading: boolean;
    ActiveSubTab: RealtimeSubTab;
    readonly SubTabs: SubTabDef[];
    LiveBridges: SessionBridgeRollup[];
    HistoryBridges: SessionBridgeRollup[];
    Providers: BridgeProviderRollup[];
    Identities: BridgeAgentIdentityRecord[];
    Channels: AgentChannelRecord[];
    ProviderChannels: BridgeProviderChannelRecord[];
    CoAgents: AgentCoAgentRecord[];
    DayBuckets: SessionBridgeDayBucket[];
    ByProvider: MetricSlice[];
    ByStatus: MetricSlice[];
    ByAgent: MetricSlice[];
    private capabilityChips;
    ngOnInit(): Promise<void>;
    SelectSubTab(key: RealtimeSubTab): void;
    /** Reloads the whole management surface for the current time range. */
    LoadData(): Promise<void>;
    private applyDataset;
    /** Opens the AIAgentSession record behind a bridge via the shared record-open path. */
    OpenSession(sessionId: string): void;
    /** Opens a bridge provider record. */
    OpenProvider(providerId: string): void;
    /** First N capability chips for a provider (kept compact in the grid). */
    CapabilityChipsFor(providerId: string, limit?: number): CapabilityChip[];
    /** Count of capability chips beyond the displayed `limit` (for a "+N" pill). */
    CapabilityOverflowFor(providerId: string, limit?: number): number;
    /** Providers contributing a given channel (for the Channels grid). */
    ProvidersForChannel(channelId: string): BridgeProviderChannelRecord[];
    /** Human-readable pairing target — a specific agent or a whole agent type. */
    CoAgentTargetLabel(row: AgentCoAgentRecord): string;
    /** Max count across day buckets (for bar height scaling); min 1 to avoid /0. */
    get MaxDayCount(): number;
    /** Bar height percentage for a day bucket. */
    DayBarHeight(count: number): number;
    /** Max slice count (for horizontal bar scaling); min 1. */
    maxSlice(slices: MetricSlice[]): number;
    /** Bar width percentage for a metric slice. */
    SliceBarWidth(slices: MetricSlice[], count: number): number;
    get LiveCount(): number;
    get HistoryCount(): number;
    get ActiveProviderCount(): number;
    get ActiveIdentityCount(): number;
    get ActiveCoAgentCount(): number;
    BridgeTypeIcon: typeof BridgeTypeIcon;
    IdentityTypeIcon: typeof IdentityTypeIcon;
    TransportTypeIcon: typeof TransportTypeIcon;
    FormatBridgeDuration: typeof FormatBridgeDuration;
    FormatBridgeStart: typeof FormatBridgeStart;
    /** CSS class for a bridge status pill. */
    BridgeStatusClass(status: string): string;
    /** CSS class for a session-bridge close-reason pill. */
    CloseReasonClass(reason: string | null): string;
    private loadPrefs;
    private savePrefs;
    static ɵfac: i0.ɵɵFactoryDeclaration<RealtimeManagementComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<RealtimeManagementComponent, "app-realtime-management", never, { "TimeRange": { "alias": "TimeRange"; "required": false; }; }, {}, never, never, false, never>;
}
export declare function LoadRealtimeManagement(): void;
export {};
//# sourceMappingURL=realtime-management.component.d.ts.map