import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
import { BottomNavMetadata, BottomNavTab, BottomNavClickEvent } from './types';
import * as i0 from "@angular/core";
/**
 * val-bottom-nav
 *
 * A modern bottom navigation bar component with support for tabs,
 * optional central FAB button, badges, and route-based active state detection.
 *
 * @example Basic usage
 * ```html
 * <val-bottom-nav
 *   [props]="{
 *     tabs: [
 *       { token: 'home', icon: { default: 'home-outline', active: 'home' }, label: 'Home', route: '/app/home' },
 *       { token: 'settings', icon: { default: 'settings-outline', active: 'settings' }, label: 'Settings', route: '/app/settings' }
 *     ]
 *   }"
 *   (tabClick)="onTabClick($event)"
 * />
 * ```
 *
 * @example With i18n and translucent theme
 * ```html
 * <val-bottom-nav
 *   [props]="{
 *     tabs: [
 *       { token: 'home', icon: { default: 'home-outline' }, labelKey: 'menuHome', route: '/app/home' },
 *       { token: 'settings', icon: { default: 'settings-outline' }, labelKey: 'menuSettings', route: '/app/settings' }
 *     ],
 *     i18nNamespace: 'Menu',
 *     theme: { translucent: true }
 *   }"
 * />
 * ```
 */
export declare class BottomNavComponent implements OnInit, OnDestroy {
    private router;
    private navigation;
    private i18n;
    private routerSubscription?;
    /** Component configuration */
    readonly props: import("@angular/core").InputSignal<BottomNavMetadata>;
    /** Event emitted when a tab is clicked */
    tabClick: EventEmitter<BottomNavClickEvent>;
    /** Event emitted when the FAB button is clicked */
    fabClick: EventEmitter<void>;
    /** Current active route signal for reactive updates */
    private currentRoute;
    /** Merged configuration with defaults */
    config: import("@angular/core").Signal<{
        theme: {
            background: string;
            activeColor: string | (string & Record<never, never>);
            inactiveColor: string | (string & Record<never, never>);
            borderRadius: string;
            elevated: boolean;
            translucent: boolean;
            floating: boolean;
        };
        tabs: BottomNavTab[];
        fab?: import("./types").BottomNavFab;
        i18nNamespace?: string;
        hideLabels: boolean;
        safeArea: boolean;
        animation: "none" | "slide" | "fade" | "scale";
        maxWidth: string;
    }>;
    /** Computed tabs with FAB inserted if present */
    displayTabs: import("@angular/core").Signal<BottomNavTab[]>;
    /** Check if a tab is currently active */
    isActive(tab: BottomNavTab): boolean;
    /** Get the appropriate icon for a tab based on active state */
    getIcon(tab: BottomNavTab): string;
    /** Get translated label for a tab */
    getLabel(tab: BottomNavTab): string;
    /** Get CSS variables for theming */
    getThemeStyles(): Record<string, string>;
    /** Resolve maxWidth token (sm|md|lg|xl|full) to CSS var or raw value */
    resolveMaxWidth(v?: string): string;
    ngOnInit(): void;
    ngOnDestroy(): void;
    /** Handle tab click */
    onTabClick(tab: BottomNavTab): void;
    /** Handle FAB click */
    onFabClick(): void;
    /** Resolve Ionic color name to CSS variable */
    resolveColor(color?: string): string;
    static ɵfac: i0.ɵɵFactoryDeclaration<BottomNavComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<BottomNavComponent, "val-bottom-nav", never, { "props": { "alias": "props"; "required": false; "isSignal": true; }; }, { "tabClick": "tabClick"; "fabClick": "fabClick"; }, never, never, true, never>;
}
