import { NativeScriptProps } from 'react-nativescript';
import { PropertyChangeData } from '@nativescript/core';
import { Tabs } from '..';
import { TabNavigationBaseAttributes } from '@nativescript-community/ui-material-core-tabs/react';
import { SelectedIndexChangedEventData } from '@nativescript-community/ui-material-core-tabs/tab-navigation-base';
import { TabStrip } from '@nativescript-community/ui-material-core-tabs/tab-strip';
import { TabContentItem } from '@nativescript-community/ui-material-core-tabs/tab-content-item';
export type TabsAttributes = TabNavigationBaseAttributes & {
    android?: any;
    iOSTabBarItemsAlignment?: 'center' | 'leading' | 'justified' | 'centerSelected';
    ios?: any;
    items?: TabContentItem[];
    offscreenTabLimit?: string | number;
    onIOsTabBarItemsAlignmentChange?: (args: PropertyChangeData) => void;
    onOffscreenTabLimitChange?: (args: PropertyChangeData) => void;
    onSelectedIndexChanged?: (args: SelectedIndexChangedEventData) => void;
    onSwipeEnabledChange?: (args: PropertyChangeData) => void;
    onTabsPositionChange?: (args: PropertyChangeData) => void;
    selectedIndex?: number;
    swipeEnabled?: string | false | true;
    tabStrip?: TabStrip;
    tabsPosition?: 'top' | 'bottom';
};
declare global {
    namespace JSX {
        interface IntrinsicElements {
            tabs: NativeScriptProps<TabsAttributes, Tabs>;
        }
        interface ElementChildrenAttribute {
            children: {};
        }
    }
}
interface RegisterTabsOptions {
    enableDebugLogging?: boolean;
}
export declare function registerTabs(opts?: RegisterTabsOptions): void;
export {};
