import { TabView as TabViewDefinition, TabViewItem as TabViewItemDefinition, SelectedIndexChangedEventData } from '.';
import { View, AddArrayFromBuilder, AddChildFromBuilder } from '../core/view';
import { ViewBase } from '../core/view-base';
import { Style } from '../styling/style';
import { EventData } from '../../data/observable';
import { Color } from '../../color';
import { Property, CssProperty, CoercibleProperty } from '../core/properties';
import { CoreTypes } from '../../core-types';
export declare const traceCategory = "TabView";
export declare abstract class TabViewItemBase extends ViewBase implements TabViewItemDefinition, AddChildFromBuilder {
    role: string;
    private _title;
    private _view;
    private _iconSource;
    iconFontFamily: string;
    get textTransform(): CoreTypes.TextTransformType;
    set textTransform(value: CoreTypes.TextTransformType);
    _addChildFromBuilder(name: string, value: any): void;
    get title(): string;
    set title(value: string);
    get view(): View;
    set view(value: View);
    get iconSource(): string;
    set iconSource(value: string);
    eachChild(callback: (child: ViewBase) => boolean): void;
    loadView(view: ViewBase): void;
    abstract _update(): any;
}
export declare class TabViewBase extends View implements TabViewDefinition, AddChildFromBuilder, AddArrayFromBuilder {
    static selectedIndexChangedEvent: string;
    items: TabViewItemDefinition[];
    selectedIndex: number;
    androidOffscreenTabLimit: number;
    androidTabsPosition: 'top' | 'bottom';
    androidSwipeEnabled: boolean;
    iosIconRenderingMode: 'automatic' | 'alwaysOriginal' | 'alwaysTemplate';
    androidIconRenderingMode: 'alwaysOriginal' | 'alwaysTemplate';
    /**
     * iOS 26+: Optional bottom accessory view that appears beneath the tab bar.
     * Provide a NativeScript View instance. On platforms < iOS 26 this is ignored.
     */
    iosBottomAccessory: View;
    /**
     * iOS 26+: Controls tab bar minimize behavior. One of: 'automatic' | 'never' | 'onScrollDown' | 'onScrollUp'.
     */
    iosTabBarMinimizeBehavior: 'automatic' | 'never' | 'onScrollDown' | 'onScrollUp';
    get androidSelectedTabHighlightColor(): Color;
    set androidSelectedTabHighlightColor(value: Color);
    get tabTextFontSize(): number;
    set tabTextFontSize(value: number);
    get tabTextColor(): Color;
    set tabTextColor(value: Color);
    get tabBackgroundColor(): Color;
    set tabBackgroundColor(value: Color);
    get selectedTabTextColor(): Color;
    set selectedTabTextColor(value: Color);
    _addArrayFromBuilder(name: string, value: Array<any>): void;
    _addChildFromBuilder(name: string, value: any): void;
    get _selectedView(): View;
    get _childrenCount(): number;
    eachChild(callback: (child: ViewBase) => boolean): void;
    eachChildView(callback: (child: View) => boolean): void;
    onItemsChanged(oldItems: TabViewItemDefinition[], newItems: TabViewItemDefinition[]): void;
    onSelectedIndexChanged(oldIndex: number, newIndex: number): void;
}
export interface TabViewBase {
    on(eventNames: string, callback: (data: EventData) => void, thisArg?: any): void;
    on(event: 'selectedIndexChanged', callback: (args: SelectedIndexChangedEventData) => void, thisArg?: any): void;
}
export declare function traceMissingIcon(icon: string): void;
export declare const selectedIndexProperty: CoercibleProperty<TabViewBase, number>;
export declare const itemsProperty: Property<TabViewBase, TabViewItemDefinition[]>;
export declare const iosIconRenderingModeProperty: Property<TabViewBase, "automatic" | "alwaysOriginal" | "alwaysTemplate">;
export declare const androidIconRenderingModeProperty: Property<TabViewBase, "alwaysOriginal" | "alwaysTemplate">;
export declare const androidOffscreenTabLimitProperty: Property<TabViewBase, number>;
export declare const androidTabsPositionProperty: Property<TabViewBase, "top" | "bottom">;
export declare const androidSwipeEnabledProperty: Property<TabViewBase, boolean>;
export declare const iosBottomAccessoryProperty: Property<TabViewBase, View>;
export type TabBarMinimizeType = 'automatic' | 'never' | 'onScrollDown' | 'onScrollUp';
export declare const iosTabBarMinimizeBehaviorProperty: Property<TabViewBase, TabBarMinimizeType>;
export declare const tabTextFontSizeProperty: CssProperty<Style, number>;
export declare const tabTextColorProperty: CssProperty<Style, Color>;
export declare const iconFontFamilyProperty: CssProperty<Style, string>;
export declare const tabBackgroundColorProperty: CssProperty<Style, Color>;
export declare const selectedTabTextColorProperty: CssProperty<Style, Color>;
export declare const androidSelectedTabHighlightColorProperty: CssProperty<Style, Color>;
