import * as _angular_core from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; type CalendarStartView = 'month' | 'year' | 'multi-year'; type CalendarDateFilter = (date: Date | null) => boolean; interface CalendarDayCell { readonly date: Date; readonly label: number; readonly inMonth: boolean; readonly disabled: boolean; readonly selected: boolean; readonly today: boolean; readonly active: boolean; } /** * Kalender inline native (tanpa Angular Material): grid bulan dengan navigasi * keyboard penuh, plus tampilan pilih tahun (multi-year) dan pilih bulan (year) * mengikuti siklus Material — label periode di-klik untuk berpindah tampilan. * Two-way `value`, ControlValueAccessor untuk ngModel/reactive forms. */ declare class CalendarComponent implements ControlValueAccessor { private readonly locale; private readonly host; readonly value: _angular_core.ModelSignal; readonly min: _angular_core.InputSignal; readonly max: _angular_core.InputSignal; readonly startAt: _angular_core.InputSignal; readonly startView: _angular_core.InputSignal; readonly dateFilter: _angular_core.InputSignal; readonly disabled: _angular_core.ModelSignal; readonly class: _angular_core.InputSignal; /** Disabled state pushed by the Forms API; kept separate so it never clobbers the `disabled` binding. */ private readonly cvaDisabled; protected readonly isDisabled: _angular_core.Signal; protected readonly activeCellId: string; /** * Tanggal jangkar tampilan + fokus keyboard (roving tabindex). linkedSignal: * mengikuti value/startAt yang ter-bind belakangan, tapi tetap bisa ditulis * lokal oleh navigasi prev/next/keyboard. */ protected readonly activeDate: _angular_core.WritableSignal; protected readonly view: _angular_core.WritableSignal; protected readonly classes: _angular_core.Signal; private readonly monthYearFormat; private readonly dayFormat; protected readonly weekdayLabels: _angular_core.Signal<{ narrow: string; long: string; }[]>; protected readonly periodLabel: _angular_core.Signal; protected readonly previousLabel: _angular_core.Signal<"Previous month" | "Previous year" | "Previous years">; protected readonly nextLabel: _angular_core.Signal<"Next month" | "Next year" | "Next years">; protected readonly monthGrid: _angular_core.Signal; private readonly multiYearStart; protected readonly monthOptions: _angular_core.Signal<{ index: number; label: string; selected: boolean; current: boolean; }[]>; protected readonly yearOptions: _angular_core.Signal<{ value: number; selected: boolean; current: boolean; }[]>; private onChangeFn; private onTouchedFn; protected dayAriaLabel(date: Date): string; protected dayClasses(cell: CalendarDayCell): string; protected periodOptionClasses(selected: boolean, current: boolean): string; protected previous(): void; protected next(): void; private shiftPeriod; protected togglePeriodView(): void; protected selectMonth(month: number): void; protected selectYear(year: number): void; protected selectDate(cell: CalendarDayCell): void; protected onGridKeydown(event: KeyboardEvent): void; private isDateDisabled; writeValue(v: Date | null): void; registerOnChange(fn: (v: Date | null) => void): void; registerOnTouched(fn: () => void): void; setDisabledState(state: boolean): void; static ɵfac: _angular_core.ɵɵFactoryDeclaration; static ɵcmp: _angular_core.ɵɵComponentDeclaration; } export { CalendarComponent }; export type { CalendarDateFilter, CalendarStartView };