import type { AndroidActivityCallbacks, AndroidFrame as AndroidFrameDefinition, NavigationTransition } from '.';
import type { BackstackEntry } from './frame-interfaces';
import type { Page } from '../page';
import { Observable } from '../../data/observable';
import { View } from '../core/view';
import { FrameBase, NavigationType } from './frame-common';
import type { ExpandedEntry } from './fragment.transitions.android';
export * from './frame-common';
export { setFragmentClass } from './fragment';
export declare let attachStateChangeListener: android.view.View.OnAttachStateChangeListener;
export declare class Frame extends FrameBase {
    _originalBackground: any;
    private _android;
    private _containerViewId;
    private _tearDownPending;
    private _attachedToWindow;
    _defaultOverflowEdge: number;
    _defaultOverflowEdgeValue: string;
    /**
     * This property indicates that the view is to be reused as a root view or has been previously disposed.
     */
    private _isReset;
    private _cachedTransitionState;
    private _frameCreateTimeout;
    constructor();
    static reloadPage(context?: ModuleContext): void;
    static get defaultAnimatedNavigation(): boolean;
    static set defaultAnimatedNavigation(value: boolean);
    static get defaultTransition(): NavigationTransition;
    static set defaultTransition(value: NavigationTransition);
    get containerViewId(): number;
    get android(): AndroidFrame;
    get _hasFragments(): boolean;
    _onAttachedToWindow(): void;
    _onDetachedFromWindow(): void;
    protected _processNextNavigationEntry(): void;
    _getChildFragmentManager(): any;
    _onRootViewReset(): void;
    onLoaded(): void;
    onUnloaded(): void;
    /**
     * TODO: Check if this fragment precaution is still needed
     */
    private _ensureEntryFragment;
    private disposeCurrentFragment;
    private createFragment;
    setCurrent(entry: BackstackEntry, navigationType: NavigationType): void;
    onBackPressed(): boolean;
    _navigateCore(newEntry: BackstackEntry): void;
    _goBackCore(backstackEntry: BackstackEntry & ExpandedEntry): void;
    _removeEntry(removed: BackstackEntry): void;
    protected _disposeBackstackEntry(entry: BackstackEntry): void;
    createNativeView(): org.nativescript.widgets.ContentLayout;
    initNativeView(): void;
    disposeNativeView(): void;
    _popFromFrameStack(): void;
    _getNavBarVisible(page: Page): boolean;
    _saveFragmentsState(): void;
}
export declare function reloadPage(context?: ModuleContext): void;
declare class AndroidFrame extends Observable implements AndroidFrameDefinition {
    rootViewGroup: android.view.ViewGroup;
    frameId: any;
    private _showActionBar;
    private _owner;
    constructor(owner: Frame);
    get showActionBar(): boolean;
    set showActionBar(value: boolean);
    get activity(): androidx.appcompat.app.AppCompatActivity;
    get actionBar(): android.app.ActionBar;
    get currentActivity(): androidx.appcompat.app.AppCompatActivity;
    get owner(): Frame;
    canGoBack(): boolean;
    fragmentForPage(entry: BackstackEntry): any;
}
export declare let moduleLoaded: boolean;
export declare class ActivityCallbacksImplementation implements AndroidActivityCallbacks {
    private _rootView;
    getRootView(): View;
    onCreate(activity: androidx.appcompat.app.AppCompatActivity, savedInstanceState: android.os.Bundle, intentOrSuperFunc: android.content.Intent | Function, superFunc?: Function): void;
    onSaveInstanceState(activity: androidx.appcompat.app.AppCompatActivity, outState: android.os.Bundle, superFunc: Function): void;
    onNewIntent(activity: androidx.appcompat.app.AppCompatActivity, intent: android.content.Intent, superSetIntentFunc: Function, superFunc: Function): void;
    onStart(activity: any, superFunc: Function): void;
    onStop(activity: any, superFunc: Function): void;
    onPostResume(activity: any, superFunc: Function): void;
    onDestroy(activity: any, superFunc: Function): void;
    onBackPressed(activity: any, superFunc: Function): void;
    onRequestPermissionsResult(activity: any, requestCode: number, permissions: Array<string>, grantResults: Array<number>, superFunc: Function): void;
    onActivityResult(activity: any, requestCode: number, resultCode: number, data: android.content.Intent, superFunc: Function): void;
    resetActivityContent(activity: androidx.appcompat.app.AppCompatActivity): void;
    private setActivityContent;
}
export declare function setActivityCallbacks(activity: androidx.appcompat.app.AppCompatActivity): void;
