import type { View } from '../ui/core/view';
import { CoreTypes } from '../core-types';
import { NativeWindow } from './native-window-common';
import type { WindowRole } from './window-base';
/**
 * iOS implementation of NativeWindow.
 * Wraps a UIWindow and, when the app is scene-based, the UIWindowScene hosting it.
 */
export declare class IOSNativeWindow extends NativeWindow {
    private _scene;
    private _window;
    /**
     * @internal – set while a scene session destruction request is in flight, so the
     * following scene disconnect is read as a close rather than a detach.
     */
    _closeRequested: boolean;
    /**
     * @internal – whether the id comes from a scene session identity. Without one the
     * window cannot be matched to a reconnecting session or to a discarded one.
     */
    _hasSessionIdentity: boolean;
    constructor(scene: UIWindowScene | undefined, window: UIWindow, id?: string, isPrimary?: boolean, role?: WindowRole);
    /**
     * @internal – bind a new scene/window pair to this window session after a detach.
     */
    _reattach(scene: UIWindowScene, uiWindow: UIWindow): void;
    get ios(): {
        scene: UIWindowScene;
        uiWindow: UIWindow;
    };
    /**
     * Platform-specific: set the view as root content of this UIWindow.
     */
    protected _setNativeContent(view: View): void;
    /**
     * Close this window/scene.
     */
    close(): void;
    protected _getOrientation(): 'portrait' | 'landscape' | 'unknown';
    protected _getSystemAppearance(): 'light' | 'dark' | null;
    protected _getLayoutDirection(): CoreTypes.LayoutDirectionType | null;
    private _getOrientationValue;
    _getSystemAppearanceValue(userInterfaceStyle: number): 'dark' | 'light';
    _getLayoutDirectionValue(layoutDirection: number): CoreTypes.LayoutDirectionType;
    private _getViewController;
    private _setViewControllerView;
    protected _onReleaseRootView(rootView: View): void;
    protected _onDestroy(): void;
    /**
     * The window identity of a scene: the session persistent identifier, which iOS keeps
     * across a disconnect and hands back when it reconnects the same session.
     *
     * Returns `undefined` when the scene carries no session identity — such a window gets
     * a minted id and will not be recognised on reconnect.
     */
    static getSceneId(scene: UIWindowScene): string | undefined;
}
