import { EventEmitter, OnInit } from '@angular/core';
import { SegmentControlMetadata } from '../../molecules/segment-control/types';
import { TabbedContentMetadata, TabbedContentTab, TabbedContentContext } from './types';
import * as i0 from "@angular/core";
/**
 * val-tabbed-content
 *
 * A container component that combines segment navigation with dynamic content panels.
 * Uses segment-control internally for tab navigation and renders the associated
 * template for the active tab.
 *
 * @example Basic usage with templates
 * ```html
 * <ng-template #catalogTemplate>
 *   <div>Catalog Content</div>
 * </ng-template>
 * <ng-template #settingsTemplate>
 *   <div>Settings Content</div>
 * </ng-template>
 *
 * <val-tabbed-content [props]="{
 *   tabs: [
 *     { value: 'catalog', label: 'Catalog', icon: 'layers-outline', template: catalogTemplate },
 *     { value: 'settings', label: 'Settings', icon: 'settings-outline', template: settingsTemplate }
 *   ],
 *   selectedTab: 'catalog',
 *   scrollable: true,
 *   animated: true
 * }" (tabChange)="onTabChange($event)"></val-tabbed-content>
 * ```
 *
 * @input props: TabbedContentMetadata - Configuration for the tabbed content
 * @output tabChange: string - Emits the selected tab value when changed
 */
export declare class TabbedContentComponent implements OnInit {
    /**
     * Configuration object for the tabbed content.
     */
    props: TabbedContentMetadata;
    /**
     * Emits when the active tab changes.
     */
    tabChange: EventEmitter<string>;
    /** Currently selected tab value */
    private selectedValue;
    /** Whether a transition is in progress */
    isTransitioning: import("@angular/core").WritableSignal<boolean>;
    /** Computed animation duration string */
    animationDuration: import("@angular/core").Signal<string>;
    /** Computed segment control props derived from tabs config */
    segmentControlProps: import("@angular/core").Signal<SegmentControlMetadata>;
    /** Computed active tab object */
    activeTab: import("@angular/core").Signal<TabbedContentTab>;
    ngOnInit(): void;
    /**
     * Handles segment change events.
     */
    onSegmentChange(value: string): void;
    /**
     * Creates the context object for the template outlet.
     */
    getTemplateContext(tab: TabbedContentTab): TabbedContentContext;
    static ɵfac: i0.ɵɵFactoryDeclaration<TabbedContentComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<TabbedContentComponent, "val-tabbed-content", never, { "props": { "alias": "props"; "required": false; }; }, { "tabChange": "tabChange"; }, never, never, true, never>;
}
