import { LitElement } from 'lit';
declare global {
    interface HTMLElementTagNameMap {
        'typedserver-statuspill': TypedserverStatusPill;
    }
}
/**
 * Status source types
 */
export type TStatusSource = 'backend' | 'serviceworker' | 'network';
/**
 * Status type
 */
export type TStatusType = 'connected' | 'disconnected' | 'reconnecting' | 'update' | 'cache' | 'error' | 'offline' | 'online';
/**
 * Status item with details
 */
export interface IStatusItem {
    source: TStatusSource;
    type: TStatusType;
    message: string;
    details?: {
        version?: string;
        cacheHitRate?: number;
        resourceCount?: number;
        connectionType?: string;
        latencyMs?: number;
    };
    persist: boolean;
    timestamp: number;
}
/**
 * Modern status pill component that displays connection and service worker status
 * - Shows at center-bottom on connectivity changes
 * - Stays visible during error states
 * - Expands on hover to show detailed status
 */
export declare class TypedserverStatusPill extends LitElement {
    accessor backendStatus: IStatusItem | null;
    accessor swStatus: IStatusItem | null;
    accessor networkStatus: IStatusItem | null;
    accessor visible: boolean;
    accessor expanded: boolean;
    accessor hasError: boolean;
    private hideTimeout;
    private appended;
    static styles: import("lit").CSSResult;
    /**
     * Update status from a specific source
     */
    updateStatus(status: IStatusItem): void;
    /**
     * Check if any status is an error state
     */
    private hasAnyError;
    /**
     * Get overall status class
     */
    private getStatusClass;
    /**
     * Get the most recent status
     */
    private getLatestStatus;
    /**
     * Show the pill
     */
    show(): void;
    /**
     * Hide the pill
     */
    hide(): void;
    /**
     * Schedule auto-hide
     */
    private scheduleHide;
    /**
     * Cancel scheduled hide
     */
    private cancelHide;
    /**
     * Toggle expanded state
     */
    private toggleExpanded;
    /**
     * Clear all status and hide
     */
    clearStatus(): void;
    /**
     * Set success message (auto-hides)
     */
    setSuccess(message: string, source?: TStatusSource): void;
    /**
     * Set error message (persists)
     */
    setError(message: string, source?: TStatusSource): void;
    /**
     * Set transitional message (auto-hides)
     */
    setText(message: string, source?: TStatusSource): void;
    /**
     * Render status indicators
     */
    private renderStatusIndicators;
    /**
     * Render expanded details
     */
    private renderDetails;
    render(): import("lit").TemplateResult<1>;
}
