import { LitElement } from './plugins.js';
import type { CSSResult, TemplateResult } from './plugins.js';
import type { IMetricsData } from './sw-dash-overview.js';
import type { ICachedResource } from './sw-dash-urls.js';
import type { IDomainStats } from './sw-dash-domains.js';
import type { IContentTypeStats } from './sw-dash-types.js';
import type { serviceworker } from '../dist_ts_interfaces/index.js';
import './sw-dash-overview.js';
import './sw-dash-urls.js';
import './sw-dash-domains.js';
import './sw-dash-types.js';
import './sw-dash-events.js';
import './sw-dash-requests.js';
import './sw-dash-table.js';
type ViewType = 'overview' | 'urls' | 'domains' | 'types' | 'events' | 'requests';
interface IResourceData {
    resources: ICachedResource[];
    domains: IDomainStats[];
    contentTypes: IContentTypeStats[];
    resourceCount: number;
}
/**
 * Main SW Dashboard application shell
 *
 * Architecture:
 * - ONE initial HTTP seed request to /sw-dash/metrics (provides ALL data)
 * - HTTP heartbeat every 30s for SW health check
 * - Everything else via DeesComms (push from SW, requests to SW)
 */
export declare class SwDashApp extends LitElement {
    static styles: CSSResult[];
    accessor currentView: ViewType;
    accessor metrics: IMetricsData | null;
    accessor lastRefresh: string;
    accessor isConnected: boolean;
    accessor resourceData: IResourceData;
    accessor events: serviceworker.IEventLogEntry[];
    accessor eventTotalCount: number;
    accessor eventCountLastHour: number;
    accessor requestLogs: serviceworker.ITypedRequestLogEntry[];
    accessor requestTotalCount: number;
    accessor requestStats: serviceworker.ITypedRequestStats | null;
    accessor requestMethods: string[];
    private comms;
    private heartbeatInterval;
    private readonly HEARTBEAT_INTERVAL_MS;
    connectedCallback(): void;
    disconnectedCallback(): void;
    /**
     * Initial HTTP request to seed ALL data and wake up service worker
     * This is the ONE HTTP request that provides everything:
     * - Core metrics
     * - Resources, domains, content types
     * - Events (initial 50)
     * - Request logs (initial 50), stats, methods
     */
    private loadInitialData;
    /**
     * Setup DeesComms handlers for receiving push updates from SW
     * All real-time updates come through here
     */
    private setupPushListeners;
    /**
     * Heartbeat to check SW health periodically (HTTP)
     * This is the ONLY periodic HTTP request
     */
    private startHeartbeat;
    /**
     * Handle "load more events" request from sw-dash-events component
     * Uses DeesComms to request older events from SW
     */
    private handleLoadMoreEvents;
    /**
     * Handle "clear events" request from sw-dash-events component
     * Uses DeesComms to clear event log in SW
     */
    private handleClearEvents;
    /**
     * Handle "load more requests" from sw-dash-requests component
     * Uses DeesComms to request older request logs from SW
     */
    private handleLoadMoreRequests;
    /**
     * Handle "clear requests" from sw-dash-requests component
     * Uses DeesComms to clear request logs in SW
     */
    private handleClearRequests;
    private setView;
    private handleSpeedtestComplete;
    private formatUptime;
    render(): TemplateResult;
}
export {};
