import { Observable } from 'rxjs'; import * as i0 from '@angular/core'; import { EventEmitter, AfterViewInit, ElementRef } from '@angular/core'; import * as i10 from '@angular/forms'; import { ControlValueAccessor } from '@angular/forms'; import * as i9 from '@angular/common'; interface ShaqraDgaTheme { primaryColor: string; secondaryColor: string; dangerColor: string; backgroundColor: string; textColor: string; borderRadius: string; fontFamily: string; } interface ShaqraDgaConfig { theme: ShaqraDgaTheme; globalDisabled: boolean; debugMode: boolean; } declare class ShaqraDgaPlatformscodeAngularService { private defaultConfig; private configSubject; config$: Observable; private registeredComponents; private componentUsageStats; constructor(); /** * Get current configuration */ getConfig(): ShaqraDgaConfig; /** * Update the global configuration */ updateConfig(config: Partial): void; /** * Update only theme settings */ updateTheme(theme: Partial): void; /** * Reset configuration to defaults */ resetConfig(): void; /** * Enable/disable all components globally */ setGlobalDisabled(disabled: boolean): void; /** * Enable/disable debug mode */ setDebugMode(enabled: boolean): void; /** * Register a component (for tracking and debugging) */ registerComponent(componentName: string): void; /** * Get list of registered components */ getRegisteredComponents(): string[]; /** * Get component usage statistics */ getComponentStats(): Map; /** * Generate CSS custom properties from current theme */ generateCSSVariables(): { [key: string]: string; }; /** * Apply theme to document root */ applyThemeToDocument(): void; /** * Validate component configuration */ validateComponentConfig(componentName: string, config: any): boolean; /** * Get library version and info */ getLibraryInfo(): { name: string; version: string; components: string[]; }; /** * Debug logging utility */ private logDebug; /** * Observable for theme changes */ get theme$(): Observable; /** * Check if components are globally disabled */ isGloballyDisabled(): boolean; /** * Utility method to create component-specific configuration */ createComponentConfig(componentName: string, baseConfig?: any): any; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class ShaqraDgaPlatformscodeAngularComponent { title: string; showDemo: boolean; onDemoButtonClick(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class TextInputComponent implements ControlValueAccessor { placeholder: string; label: string; disabled: boolean; required: boolean; type: string; set value(val: string); get value(): string; valueChange: EventEmitter; _value: string; private onChange; private onTouched; writeValue(value: string): void; registerOnChange(fn: (value: string) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; onInputChange(event: any): void; onBlur(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class ButtonComponent { variant: 'primary' | 'neutral' | 'danger'; size: 'small' | 'medium' | 'large'; disabled: boolean; loading: boolean; selected: boolean; showIcon: boolean; type: 'button' | 'submit' | 'reset'; clicked: EventEmitter; onClick(): void; get buttonClasses(): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface DropdownOption { value: any; label: string; disabled?: boolean; } declare class DropdownComponent implements ControlValueAccessor, AfterViewInit { private elementRef; placeholder: string; label: string; disabled: boolean; required: boolean; options: DropdownOption[]; set value(val: any); get value(): any; valueChange: EventEmitter; selectionChange: EventEmitter; _value: any; isOpen: boolean; focusedOptionIndex: number; private onChange; private onTouched; constructor(elementRef: ElementRef); ngAfterViewInit(): void; writeValue(value: any): void; registerOnChange(fn: (value: any) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; get selectedOption(): DropdownOption | null; get displayText(): string; toggleDropdown(): void; selectOption(option: DropdownOption): void; onBlur(): void; private findNextEnabledOption; onKeyDown(event: KeyboardEvent): void; onDocumentClick(event: Event): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface ContentSwitcherItem { id: string | number; label: string; disabled?: boolean; } declare class ContentSwitcherComponent { items: ContentSwitcherItem[]; variant: 'primary' | 'secondary'; selectedId: string | number | null; disabled: boolean; selectionChange: EventEmitter; ngOnInit(): void; selectItem(item: ContentSwitcherItem, index: number): void; isSelected(item: ContentSwitcherItem): boolean; isFirst(index: number): boolean; isLast(index: number): boolean; getItemClasses(item: ContentSwitcherItem, index: number): string; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface CalendarDay$1 { date: Date; day: number; isCurrentMonth: boolean; isToday: boolean; isSelected: boolean; isDisabled: boolean; } declare class SingleDatepickerComponent implements ControlValueAccessor { private elementRef; placeholder: string; label: string; disabled: boolean; readonly: boolean; required: boolean; minDate: Date | null; maxDate: Date | null; dateChange: EventEmitter; _selectedDate: Date | null; isOpen: boolean; isYearDropdownOpen: boolean; currentMonth: Date; calendarDays: CalendarDay$1[]; focusedDayIndex: number; availableYears: number[]; weekDays: string[]; monthNames: string[]; private onChange; private onTouched; constructor(elementRef: ElementRef); ngOnInit(): void; generateYearList(): void; toggleYearDropdown(event: Event): void; selectYear(year: number, event: Event): void; writeValue(value: Date | null): void; registerOnChange(fn: (value: Date | null) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; get formattedDate(): string; get displayPlaceholder(): boolean; get currentMonthName(): string; get currentYear(): number; toggleCalendar(): void; closeCalendar(): void; previousMonth(): void; nextMonth(): void; selectDate(day: CalendarDay$1): void; isDateDisabled(date: Date): boolean; generateCalendar(): void; isToday(date: Date): boolean; isSameDate(date1: Date | null, date2: Date | null): boolean; getDayClasses(day: CalendarDay$1): string; onDocumentClick(event: Event): void; onKeyDown(event: KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface DateRange { startDate: Date | null; endDate: Date | null; } interface CalendarDay { date: Date; day: number; isCurrentMonth: boolean; isToday: boolean; isStartDate: boolean; isEndDate: boolean; isInRange: boolean; isDisabled: boolean; } declare class RangedDatepickerComponent implements ControlValueAccessor { private elementRef; placeholder: string; label: string; disabled: boolean; readonly: boolean; required: boolean; minDate: Date | null; maxDate: Date | null; rangeChange: EventEmitter; _dateRange: DateRange; isOpen: boolean; isYearDropdownOpen: boolean; currentMonth: Date; calendarDays: CalendarDay[]; isSelectingEndDate: boolean; availableYears: number[]; weekDays: string[]; monthNames: string[]; private onChange; private onTouched; constructor(elementRef: ElementRef); ngOnInit(): void; generateYearList(): void; toggleYearDropdown(event: Event): void; selectYear(year: number, event: Event): void; writeValue(value: DateRange): void; registerOnChange(fn: (value: DateRange) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(isDisabled: boolean): void; get formattedDate(): string; get displayPlaceholder(): boolean; get currentMonthName(): string; get currentYear(): number; toggleCalendar(): void; closeCalendar(): void; previousMonth(): void; nextMonth(): void; selectDate(day: CalendarDay): void; clearSelection(): void; isDateDisabled(date: Date): boolean; isDateInRange(date: Date): boolean; generateCalendar(): void; isToday(date: Date): boolean; isSameDate(date1: Date | null, date2: Date | null): boolean; getDayClasses(day: CalendarDay): string; onDocumentClick(event: Event): void; onKeyDown(event: KeyboardEvent): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } interface UploadedFile { id: string; name: string; size: number; type: string; file: File; } declare class FileUploaderComponent { disabled: boolean; maxFileSize: number; acceptedFormats: string[]; numberOfAllowedFiles: number | null; dragDropText: string; browseButtonText: string; descriptionText: string; filesChange: EventEmitter; fileError: EventEmitter; uploadedFiles: UploadedFile[]; isDragOver: boolean; onDragOver(event: DragEvent): void; onDragLeave(event: DragEvent): void; onDrop(event: DragEvent): void; onBrowseClick(): void; handleFiles(files: File[]): void; removeFile(fileId: string): void; isUploadLimitReached(): boolean; formatFileSize(bytes: number): string; getFileIcon(fileName: string): string; private generateId; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class ShaqraDgaPlatformscodeAngularModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } export { ButtonComponent, ContentSwitcherComponent, DropdownComponent, FileUploaderComponent, RangedDatepickerComponent, ShaqraDgaPlatformscodeAngularComponent, ShaqraDgaPlatformscodeAngularModule, ShaqraDgaPlatformscodeAngularService, SingleDatepickerComponent, TextInputComponent }; export type { ContentSwitcherItem, DateRange, DropdownOption, ShaqraDgaConfig, ShaqraDgaTheme, UploadedFile };