import { LayoutBase } from '../layouts/layout-base';
import { View } from '../core/view';
import { Property } from '../core/properties';
import { Color } from '../../color';
import type { SplitBehavior, SplitDisplayMode, SplitRole, SplitStyle } from '.';
export declare class SplitViewBase extends LayoutBase {
    /**
     * The display style for the split view controller.
     * Must be set before bootstrapping the app.
     */
    static SplitStyle: SplitStyle;
    static getInstance(): SplitViewBase | null;
    /** Child role (primary, secondary, supplementary, inspector) */
    splitRole: SplitRole;
    /** Preferred display mode */
    displayMode: SplitDisplayMode;
    /** Preferred split behavior (iOS 14+) */
    splitBehavior: SplitBehavior;
    /** Primary column width fraction (0..1) */
    preferredPrimaryColumnWidthFraction: number;
    /** Supplementary column width fraction (0..1, iOS 14+ triple) */
    preferredSupplementaryColumnWidthFraction: number;
    /** Inspector column width fraction (0..1, iOS 17+/18+ when Inspector column available) */
    preferredInspectorColumnWidthFraction: number;
    /** Navigation bar tint color for buttons */
    navigationBarTintColor: Color;
    /**
     * Get child role (primary, secondary, supplementary, inspector)
     */
    static getRole(element: SplitViewBase): SplitRole;
    /**
     * Set child role (primary, secondary, supplementary, inspector)
     */
    static setRole(element: SplitViewBase, value: SplitRole): void;
    onRoleChanged(view: View, oldValue: SplitRole, newValue: SplitRole): void;
    showPrimary(): void;
    hidePrimary(): void;
    showSecondary(): void;
    hideSecondary(): void;
    showSupplementary(): void;
    hideSupplementary(): void;
    showInspector(): void;
    hideInspector(): void;
    /**
     * Invalidate layouts for all child views in the SplitView.
     * Useful when columns change, orientation changes, or any scenario
     * requiring a full layout refresh of all split view children.
     * @param delay Optional delay in milliseconds (default 350ms to wait for animations)
     */
    invalidateChildLayouts(delay?: number): void;
    protected _roleByIndex(index: number): SplitRole;
}
export declare const splitRoleProperty: Property<View, SplitRole>;
export declare const displayModeProperty: Property<SplitViewBase, SplitDisplayMode>;
export declare const splitBehaviorProperty: Property<SplitViewBase, SplitBehavior>;
export declare const preferredPrimaryColumnWidthFractionProperty: Property<SplitViewBase, number>;
export declare const preferredSupplementaryColumnWidthFractionProperty: Property<SplitViewBase, number>;
export declare const preferredInspectorColumnWidthFractionProperty: Property<SplitViewBase, number>;
export declare const navigationBarTintColorProperty: Property<SplitViewBase, Color>;
