/**
 * TyCalendarNavigation Web Component
 * PORTED FROM: cljs/ty/components/calendar_navigation.cljs
 *
 * A pure presentation component for calendar month/year navigation.
 * Stateless - all state comes from properties, changes emitted via events.
 *
 * Features:
 * - Year/Month navigation (prev/next month, prev/next year)
 * - Localized month name display
 * - Custom event emission on navigation
 * - Property-driven API (no internal state)
 * - Inline SVG icons
 * - Shadow DOM encapsulation
 *
 * @example
 * ```html
 * <!-- Basic usage -->
 * <ty-calendar-navigation
 *   display-month="10"
 *   display-year="2025"
 *   locale="en-US">
 * </ty-calendar-navigation>
 *
 * <!-- Listen for changes -->
 * <script type="module">
 *   const nav = document.querySelector('ty-calendar-navigation');
 *   nav.addEventListener('change', (e) => {
 *     console.log('New month:', e.detail.month);
 *     console.log('New year:', e.detail.year);
 *   });
 * </script>
 * ```
 */
/**
 * Navigation change event detail
 */
export interface NavigationChangeDetail {
    month: number;
    year: number;
}
/**
 * TyCalendarNavigation Web Component
 */
export declare class TyCalendarNavigation extends HTMLElement {
    private _displayMonth;
    private _displayYear;
    private _locale;
    private _size;
    private _width?;
    private _localeObserver?;
    /**
     * Observed attributes (minimal - properties are primary API)
     */
    static get observedAttributes(): string[];
    constructor();
    connectedCallback(): void;
    disconnectedCallback(): void;
    attributeChangedCallback(name: string, _oldValue: string | null, newValue: string | null): void;
    get displayMonth(): number;
    set displayMonth(value: number);
    get displayYear(): number;
    set displayYear(value: number);
    get locale(): string;
    set locale(value: string);
    get size(): 'sm' | 'md' | 'lg';
    set size(value: 'sm' | 'md' | 'lg');
    get width(): string | undefined;
    set width(value: string | undefined);
    /**
     * Apply size as data attribute for CSS targeting
     */
    private applySizeAttribute;
    /**
     * Apply width property as CSS custom property
     */
    private applyWidthProperty;
    /**
     * Emit change event with new month/year
     */
    private emitChangeEvent;
    /**
     * Navigate to previous/next month
     * Handles year boundary crossing
     */
    private navigateMonth;
    /**
     * Navigate to previous/next year
     */
    private navigateYear;
    /**
     * Create navigation button
     */
    private createButton;
    /**
     * Main render function
     */
    private render;
}
//# sourceMappingURL=calendar-navigation.d.ts.map