export default LeagueDashboard;
/**
 * Custom element to display league dashboard with comprehensive overview.
 *
 * @element league-dashboard
 * @attr {string} data - JSON stringified League instance object
 * @attr {boolean} [is-mobile] - Whether to use mobile styles
 * @attr {number} [font-scale] - Font scaling factor
 *
 * Emits 'league-dashboard-event' with detail { type: 'viewTable' | 'dataLoaded' | 'error', ... }
 */
declare class LeagueDashboard extends HTMLElement {
    static get observedAttributes(): string[];
    shadow: ShadowRoot;
    league: Object | import("@lovebowls/leaguejs").League | null;
    panelStates: {
        overview: boolean;
        matchStatistics: boolean;
        leagueSettings: boolean;
    };
    get _isMobile(): boolean;
    get _fontScale(): number;
    connectedCallback(): void;
    setupEventListeners(): void;
    disconnectedCallback(): void;
    /**
     * Toggles the visibility of a dashboard panel
     * @param {HTMLElement} sectionElement - The section element to toggle
     */
    togglePanel(sectionElement: HTMLElement): void;
    /**
     * Updates the visibility of a panel
     * @param {HTMLElement} sectionElement - The section element
     * @param {boolean} isVisible - Whether the panel should be visible
     */
    updatePanelVisibility(sectionElement: HTMLElement, isVisible: boolean): void;
    attributeChangedCallback(name: any, oldValue: any, newValue: any): void;
    /**
     * Loads and parses the league data.
     * @param {string|Object} data - League instance or JSON string
     */
    loadData(data: string | Object): Promise<void>;
    /**
     * Shows an error message in the component.
     * @param {string} message
     */
    showError(message: string): void;
    /**
     * Renders the dashboard content.
     */
    render(): void;
    /**
     * Renders the main dashboard content.
     * @returns {string}
     */
    renderDashboardContent(): string;
    /**
     * Renders the league overview section.
     * @returns {string}
     */
    renderLeagueOverview(): string;
    /**
     * Renders the match statistics section.
     * @returns {string}
     */
    renderMatchStatistics(): string;
    /**
     * Renders the league settings section.
     * @returns {string}
     */
    renderLeagueSettings(): string;
    /**
     * Gets the last result date from played matches.
     * @param {Array} playedMatches - Array of played matches
     * @returns {string}
     */
    getLastResultDate(playedMatches: any[]): string;
    /**
     * Gets the next match date from unplayed matches.
     * @param {Array} matches - Array of all matches
     * @returns {string}
     */
    getNextMatchDate(matches: any[]): string;
    /**
     * Utility method to fill template placeholders.
     * @param {string} template - Template string with {{placeholders}}
     * @param {Object} data - Data object to fill placeholders
     * @returns {string}
     */
    _fillTemplate(template: string, data: Object): string;
    /**
     * Escapes HTML to prevent XSS.
     * @param {string} unsafe - Unsafe string
     * @returns {string}
     */
    escapeHtml(unsafe?: string): string;
}
//# sourceMappingURL=LeagueDashboard.d.ts.map