import * as _angular_core from '@angular/core'; import { OnDestroy, ElementRef } from '@angular/core'; import { C2gLottieLoaderPreset } from '@camp2gether/c2g-ui'; import { ControlValueAccessor } from '@angular/forms'; import * as _camp2gether_c2g_ui_layout from '@camp2gether/c2g-ui/layout'; declare class ContentPanelComponent { eyebrow: _angular_core.InputSignal; title: _angular_core.InputSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class CoverageKpiComponent { label: _angular_core.InputSignal; coveragePercent: _angular_core.InputSignal; readonly ringCircumference = 125.66; readonly ringOffset: _angular_core.Signal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class HeroComponent { eyebrow: _angular_core.InputSignal; title: _angular_core.InputSignal; lead: _angular_core.InputSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type KpiCardTone = 'owned' | 'missing' | 'total'; declare class KpiCardComponent { value: _angular_core.InputSignal; label: _angular_core.InputSignal; icon: _angular_core.InputSignal; tone: _angular_core.InputSignal; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface DangerZoneAction { labelKey?: string; variant?: 'primary' | 'secondary' | 'ghost' | 'destructive'; icon?: string; ariaLabelKey?: string; disabled?: boolean; label?: string; ariaLabel?: string; } interface DangerZoneItem { id: string; titleKey?: string; descriptionKey?: string; action: DangerZoneAction; onTrigger?: (item: DangerZoneItem) => void; title?: string; description?: string; } declare class DangerZoneComponent { readonly headingKey: _angular_core.InputSignal; readonly items: _angular_core.InputSignal; /** * Emits the clicked item id so consumers can map actions in their container. * * Prefer the per-item callback (`item.onTrigger`) when you want action logic to * live directly on each item config. * * Output binding: * ```html * * ``` * * Example mapping: * ```ts * onDangerAction(id: string) { * if (id === 'delete-project') { * this.openDeleteDialog(); * } * } * ``` */ readonly itemTriggered: _angular_core.OutputEmitterRef; readonly resolvedHeadingKey: _angular_core.Signal; onItemTriggered(item: DangerZoneItem): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class DangerZoneItemComponent { readonly item: _angular_core.InputSignal; readonly triggered: _angular_core.OutputEmitterRef; titleKey(): string; descriptionKey(): string | null; actionLabelKey(): string; actionAriaLabelKey(): string; onTriggered(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface C2gListItemData { name: string; description?: string | null; memberCount?: number | null; members?: unknown[]; } declare class ListItemComponent { readonly group: _angular_core.InputSignal; readonly active: _angular_core.InputSignal; readonly selected: _angular_core.OutputEmitterRef; readonly opened: _angular_core.OutputEmitterRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface StatCardBackground { type: 'gradient' | 'image'; value: string; overlay?: string; } interface StatCardData { value: string | number; label: string; icon?: string; lottiePreset?: C2gLottieLoaderPreset; iconBackgroundTone?: 'primary' | 'secondary' | 'neutral'; background?: StatCardBackground; disabled?: boolean; trend?: { direction: 'up' | 'down' | 'neutral'; value: string | number; }; } declare class StatCardComponent { readonly data: _angular_core.InputSignal; readonly cardBackgroundStyle: _angular_core.Signal | null>; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type ActionCardLayout = 'icon-left' | 'hero-top' | 'icon-detail'; interface ActionCardData { icon?: string; title: string; text?: string; description?: string; image?: string; lottiePreset?: C2gLottieLoaderPreset; disabled?: boolean; iconBackgroundTone?: 'primary' | 'secondary' | 'neutral'; ctaLabel?: string; } declare class ActionCardComponent { readonly data: _angular_core.InputSignal; readonly clickable: _angular_core.InputSignal; readonly variant: _angular_core.InputSignal; readonly cardClicked: _angular_core.OutputEmitterRef; readonly effectiveText: _angular_core.Signal; readonly supportingDescription: _angular_core.Signal; readonly isInteractive: _angular_core.Signal; readonly iconToneClass: _angular_core.Signal<"primary" | "secondary" | "neutral">; onCardClick(): void; onKeyDown(event: KeyboardEvent): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface ViewToggleOption { value: T; icon: string; label: string; } declare class ViewToggleComponent { options: _angular_core.InputSignal[]>; activeValue: _angular_core.InputSignal; valueChange: _angular_core.OutputEmitterRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "app-view-toggle", never, { "options": { "alias": "options"; "required": true; "isSignal": true; }; "activeValue": { "alias": "activeValue"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>; } interface SegmentedToggleOption { value: T; label: string; icon?: string; iconFontSet?: string; iconFontIcon?: string; iconAriaLabel?: string; disabled?: boolean; } declare class SegmentedToggleComponent implements ControlValueAccessor { readonly options: _angular_core.InputSignal[]>; readonly disabled: _angular_core.InputSignal; readonly ariaLabel: _angular_core.InputSignal; readonly iconOnly: _angular_core.InputSignal; readonly valueChange: _angular_core.OutputEmitterRef; readonly value: _angular_core.WritableSignal; readonly cvaDisabled: _angular_core.WritableSignal; readonly isDisabled: _angular_core.Signal; private onChange; private onTouched; writeValue(value: T | null): void; registerOnChange(fn: (value: T) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; tabIndexFor(option: T): number; select(next: T): void; onKeydown(event: KeyboardEvent, index: number): void; private focusValue; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "c2g-segmented-toggle", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "iconOnly": { "alias": "iconOnly"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; }, never, never, true, never>; } declare class SearchInputComponent { searchChange: _angular_core.OutputEmitterRef; onInput(event: Event): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface EmptyStateData { icon?: string; lottiePreset?: C2gLottieLoaderPreset; title: string; description?: string; actionLabel?: string; } declare class EmptyStateComponent { readonly data: _angular_core.InputSignal; readonly actionClicked: _angular_core.OutputEmitterRef; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface PaginationState { currentPage: number; totalPages: number; pageSize?: number; totalItems?: number; } declare class PaginationComponent { readonly state: _angular_core.InputSignal; readonly ariaLabel: _angular_core.InputSignal; readonly pageChanged: _angular_core.OutputEmitterRef; readonly currentPage: _angular_core.Signal; readonly totalPages: _angular_core.Signal; readonly hasPrev: _angular_core.Signal; readonly hasNext: _angular_core.Signal; readonly visiblePages: _angular_core.Signal; readonly showStartEllipsis: _angular_core.Signal; readonly showEndEllipsis: _angular_core.Signal; go(page: number): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface C2gTableColumn { key: string; label: string; sortable?: boolean; width?: string; align?: 'left' | 'center' | 'right'; valueGetter?: (row: T) => string | number; } type C2gSortDirection = 'asc' | 'desc' | null; interface C2gSortState { key: string; direction: C2gSortDirection; } declare class TableComponent = Record> { readonly rows: _angular_core.InputSignal; readonly columns: _angular_core.InputSignal[]>; readonly rowHeight: _angular_core.InputSignal; readonly maxHeight: _angular_core.InputSignal; readonly selectable: _angular_core.InputSignal; readonly virtualScroll: _angular_core.InputSignal; readonly sortChanged: _angular_core.OutputEmitterRef; readonly rowSelected: _angular_core.OutputEmitterRef; readonly sortState: _angular_core.WritableSignal; readonly selectedRow: _angular_core.WritableSignal; readonly sortedRows: _angular_core.Signal; getCellValue(row: T, col: C2gTableColumn): string | number; sort(key: string): void; select(row: T): void; isSelected(row: T): boolean; sortIcon(key: string): string; static ɵfac: _angular_core.ɵɵFactoryDeclaration, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration, "c2g-table", never, { "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "maxHeight": { "alias": "maxHeight"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "virtualScroll": { "alias": "virtualScroll"; "required": false; "isSignal": true; }; }, { "sortChanged": "sortChanged"; "rowSelected": "rowSelected"; }, never, never, true, never>; } interface C2gTab { key: string; label: string; icon?: string; disabled?: boolean; badge?: number; } declare class TabsComponent { readonly tabs: _angular_core.InputSignal; readonly activeKey: _angular_core.ModelSignal; readonly tabChanged: _angular_core.OutputEmitterRef; readonly activeTab: _angular_core.Signal; select(tab: C2gTab): void; isActive(tab: C2gTab): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface C2gBreadcrumbItem { label: string; href?: string; icon?: string; } declare class BreadcrumbComponent { readonly items: _angular_core.InputSignal; readonly separator: _angular_core.InputSignal; readonly itemClicked: _angular_core.OutputEmitterRef; navigate(event: Event, item: C2gBreadcrumbItem): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface C2gStep { key: string; label: string; description?: string; optional?: boolean; } type C2gStepState = 'completed' | 'active' | 'pending' | 'error'; declare class StepperComponent { readonly steps: _angular_core.InputSignal; readonly activeIndex: _angular_core.ModelSignal; readonly completedIndices: _angular_core.InputSignal; readonly errorIndices: _angular_core.InputSignal; readonly orientation: _angular_core.InputSignal<"horizontal" | "vertical">; readonly stepChanged: _angular_core.OutputEmitterRef<{ step: C2gStep; index: number; }>; readonly canGoNext: _angular_core.Signal; readonly canGoPrev: _angular_core.Signal; getState(index: number): C2gStepState; goTo(index: number): void; next(): void; prev(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } type C2gKpiTrend = 'up' | 'down' | 'neutral'; type C2gKpiColor = 'primary' | 'success' | 'warning' | 'danger' | 'neutral'; interface C2gKpiCardData { label: string; value: string | number; unit?: string; icon?: string; trend?: C2gKpiTrend; change?: string | number; changeLabel?: string; color?: C2gKpiColor; /** 5–8 numbers for the mini sparkline, oldest → newest */ sparkline?: number[]; } declare class C2gKpiCardComponent implements OnDestroy { private el; readonly data: _angular_core.InputSignal; readonly color: _angular_core.Signal<_camp2gether_c2g_ui_layout.C2gKpiColor>; readonly hostClass: _angular_core.Signal; readonly displayValue: _angular_core.WritableSignal; private countUpRaf; constructor(el: ElementRef); private startCountUp; readonly sparklinePath: _angular_core.Signal<{ line: string; area: string; lastX: number; lastY: number; } | null>; readonly tilt: _angular_core.WritableSignal<{ x: number; y: number; }>; onMouseMove(e: MouseEvent): void; onMouseLeave(): void; readonly tiltStyle: _angular_core.Signal; readonly trendArrow: _angular_core.Signal<"↑" | "↓" | "→">; ngOnDestroy(): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } interface C2gFilterOption { key: string; label: string; icon?: string; count?: number; } interface C2gFilterGroup { key: string; label?: string; options: C2gFilterOption[]; multiple?: boolean; } type C2gFilterState = Record; declare class FilterBarComponent { readonly groups: _angular_core.InputSignal; readonly searchPlaceholder: _angular_core.InputSignal; readonly showSearch: _angular_core.InputSignal; readonly search: _angular_core.ModelSignal; readonly activeFilters: _angular_core.ModelSignal; readonly filterChanged: _angular_core.OutputEmitterRef; readonly searchChanged: _angular_core.OutputEmitterRef; readonly activeCount: _angular_core.Signal; readonly hasActiveFilters: _angular_core.Signal; isSelected(groupKey: string, optionKey: string): boolean; toggle(groupKey: string, optionKey: string, multiple: boolean): void; clearAll(): void; onSearch(value: string): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } declare class SkeletonTableComponent { readonly rows: _angular_core.InputSignal; readonly columns: _angular_core.InputSignal; readonly showHeader: _angular_core.InputSignal; readonly rowIndices: number[]; readonly colIndices: number[]; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { ActionCardComponent, BreadcrumbComponent, C2gKpiCardComponent, ContentPanelComponent, CoverageKpiComponent, DangerZoneComponent, DangerZoneItemComponent, EmptyStateComponent, FilterBarComponent, HeroComponent, KpiCardComponent, ListItemComponent, PaginationComponent, SearchInputComponent, SegmentedToggleComponent, SkeletonTableComponent, StatCardComponent, StepperComponent, TableComponent, TabsComponent, ViewToggleComponent }; export type { ActionCardData, ActionCardLayout, C2gBreadcrumbItem, C2gFilterGroup, C2gFilterOption, C2gFilterState, C2gKpiCardData, C2gKpiColor, C2gKpiTrend, C2gListItemData, C2gSortDirection, C2gSortState, C2gStep, C2gStepState, C2gTab, C2gTableColumn, DangerZoneAction, DangerZoneItem, EmptyStateData, KpiCardTone, PaginationState, SegmentedToggleOption, StatCardData, ViewToggleOption };