|
| 1 | +import { LitElement, TemplateResult } from 'lit'; |
| 2 | +import { ApiClient } from '../utils/api.js'; |
| 3 | +import type { LoadingState } from '../types/api.js'; |
| 4 | +export declare abstract class BaseComponent<T> extends LitElement { |
| 5 | + static styles: import("lit").CSSResult[]; |
| 6 | + /** |
| 7 | + * Base URL for the RubyEvents API. |
| 8 | + * Defaults to https://rubyevents.org |
| 9 | + */ |
| 10 | + baseUrl: string; |
| 11 | + /** |
| 12 | + * Whether to show the "Powered by RubyEvents" footer. |
| 13 | + * Add the `show-footer` attribute to display the footer. |
| 14 | + */ |
| 15 | + showFooter: boolean; |
| 16 | + protected loadingState: LoadingState; |
| 17 | + protected data: T | null; |
| 18 | + protected error: string | null; |
| 19 | + protected api: ApiClient | null; |
| 20 | + connectedCallback(): void; |
| 21 | + updated(changedProperties: Map<string, unknown>): void; |
| 22 | + protected abstract fetchData(): Promise<void>; |
| 23 | + protected abstract renderContent(): TemplateResult; |
| 24 | + protected renderLoading(): TemplateResult; |
| 25 | + protected renderError(): TemplateResult; |
| 26 | + protected renderFooter(): TemplateResult; |
| 27 | + protected formatDuration(seconds: number): string; |
| 28 | + protected formatDate(dateString: string): string; |
| 29 | + protected buildUrl(path: string): string; |
| 30 | + render(): TemplateResult; |
| 31 | +} |
| 32 | +export declare const skeletonCard: import("lit").CSSResult; |
0 commit comments