import{type PropertyValues,type TemplateResult}from'lit';import{LyraElement}from'../../../internal/lyra-element.js';import type{LyraOrientation}from'../../../internal/shared-unions.js';export type LyraSplitPanelOrientation=LyraOrientation;export type LyraSplitPanelPrimary='start'|'end';export interface LyraSplitPanelSnapFunctionParams{ /** Proposed position in pixels, measured from the primary panel's edge. */ pos:number; /** Split-panel size in pixels along its resize axis. */ size:number; /** The configured snap threshold in pixels. */ snapThreshold:number;}export type LyraSplitPanelSnapFunction=(options:LyraSplitPanelSnapFunctionParams)=>number; /** A snap function that returns the proposed position unchanged. */ export declare const SNAP_NONE:LyraSplitPanelSnapFunction; /** A proposed user-driven divider position, normalized after constraints and snapping. */ export interface LyraSplitPanelRepositionDetail{ /** Position as a percentage from the selected primary pane's edge. */ position:number; /** The same position in pixels from the selected primary pane's edge. */ positionInPixels:number;}export interface LyraSplitPanelEventMap{ /** Emitted before a pointer or keyboard interaction repositions the divider. */ 'lr-reposition-request':CustomEvent; /** Emitted whenever a pointer or keyboard interaction repositions the divider. */ 'lr-reposition':CustomEvent;} /** * `` — an accessible, draggable two-pane layout. * * `position` and `positionInPixels` are measured from the selected `primary` * panel's edge. Without a primary panel, `start` is the reference and its * percentage is preserved when the component resizes. Selecting `start` or * `end` instead preserves that panel's pixel size. * * @customElement lr-split-panel * @slot start - Content in the logical start pane. * @slot end - Content in the logical end pane. * @slot divider - Optional decorative content rendered inside the draggable divider. Assigned * content is inert, so the separator remains the sole resize control. * @event lr-reposition-request - A cancelable proposed divider position from a pointer drag or * keyboard interaction. Both detail values measure from the selected primary edge and match * accepted public readback. Call `preventDefault()` to keep `position` unchanged. Not fired when a * consumer sets `position` or `positionInPixels` directly. `detail: LyraSplitPanelRepositionDetail`. * @event lr-reposition - Non-cancelable post-commit notification after a pointer or keyboard * interaction moves the divider. Not fired when a consumer sets `position` or * `positionInPixels` directly. * @csspart base - The component's layout wrapper. * @csspart split-panel - Compatibility alias on the layout wrapper. * @csspart panel - Shared part on both pane wrappers. * @csspart start - The logical start pane. * @csspart end - The logical end pane. * @csspart divider - The draggable separator. Its numeric ARIA range remains percentages while * `aria-valuetext` reports the measured current percentage through the effective locale. * @cssprop [--divider-width=4px] - Visible divider thickness. * @cssprop [--divider-hit-area=12px] - Requested divider hit area; Lyra's minimum hit-area token remains the floor. * @cssprop [--min=0] - Minimum size of the primary pane, or the start pane when `primary` is unset. * @cssprop [--max=100%] - Maximum size of the primary pane, or the start pane when `primary` is unset. * @cssprop [--lr-split-panel-divider-width=var(--divider-width)] - Lyra-prefixed divider-width alias. * @cssprop [--lr-split-panel-divider-hit-area=var(--divider-hit-area)] - Lyra-prefixed hit-area alias. * @cssprop [--lr-split-panel-min=var(--min)] - Lyra-prefixed minimum-size alias. * @cssprop [--lr-split-panel-max=var(--max)] - Lyra-prefixed maximum-size alias. * @cssprop [--lr-split-panel-divider-hover-color=var(--lr-color-brand)] - Background of `divider` * on hover/keyboard focus, independent of any other component's own hover token that happens to * default to the same shared brand color. * @cssprop [--lr-split-panel-divider-active-color=var(--lr-color-border-strong)] - Background of * `divider` while being dragged (or focused and pressed via the keyboard). * @status stable * @since 8.0.0 */ export declare class LyraSplitPanel extends LyraElement{static styles:import("lit").CSSResultGroup[];private _startPosition;private _orientation;private _primary?;private _snapThreshold;private availableSize;private pendingPositionInPixels?;private preservedPrimaryPixels?;private resizeObserver?;private resizeView?;private drag?;private dragView?;private readonly dividerSourceSnapshots;private dividerSourceObserver?;private dividerSourceObserverDocument?;private dividerSourceObserverGeneration;private normalizedSnapSource?;private cachedNormalizedSnapTokens;private baseElement?;private dividerElement?;private dividerSlot?;private minProbe?;private maxProbe?; /** Divider position as a percentage from the primary panel's edge. * @default 50 */ get position():number;set position(value:number); /** Divider position in pixels from the primary panel's edge. */ get positionInPixels():number;set positionInPixels(value:number|undefined|null); /** Layout axis. Horizontal places panes at logical start and end. * @default 'horizontal' */ get orientation():LyraSplitPanelOrientation;set orientation(value:LyraSplitPanelOrientation); /** Boolean compatibility alias for `orientation="vertical"`. * @default false */ get vertical():boolean;set vertical(value:boolean); /** Prevents pointer and keyboard repositioning. */ disabled:boolean; /** Pane whose pixel size remains fixed while the host resizes. */ get primary():LyraSplitPanelPrimary|undefined;set primary(value:LyraSplitPanelPrimary|undefined|null);private _snap; /** Space-separated pixel/percent snap points, `repeat(...)`, or a snap callback. String * preprocessing reads at most 16,384 UTF-16 code units and retains at most 256 finite valid * tokens, caching their numeric value/unit projection until the source changes. Assigning the Web Awesome `undefined` * spelling restores the inert empty-string read default. */ get snap():string|LyraSplitPanelSnapFunction;set snap(value:string|LyraSplitPanelSnapFunction|undefined); /** Maximum distance in pixels at which string snap points take effect. * @default 12 */ get snapThreshold():number;set snapThreshold(value:number);private get effectiveOrientation();private measuredLayoutSize;connectedCallback():void;disconnectedCallback():void;firstUpdated(changed:PropertyValues):void;protected updated(changed:PropertyValues):void;private requestSynchronizedUpdate;private axisSize;private constraintBounds; /** Resolves a user or property-supplied position without mutating public * state. The interaction request event needs this finalized (snapped and * constrained) value before any assignment occurs. */ private resolvePrimaryPixels;private applyPrimaryPixels; /** Proposes a finalized user-driven position before committing it. Direct * property assignments deliberately continue through applyPrimaryPixels() * without either interaction event. */ private requestReposition;private measureAndSynchronize;private synchronizeMeasuredDom;private observeSize;private readonly onWindowResize;private snapshotDividerSource;private adoptDividerSourceInert;private makeDividerSourceInert;private restoreDividerSource;private restoreDividerSources;private resetDividerSourceObserver;private observeDividerSources;private syncDividerSources;private readonly onDividerSlotChange;private resolveNormalizedSnapLength;private get normalizedSnapTokens();private applySnap;private pointerCoordinate;private onPointerDown;private readonly onPointerMove;private readonly onPointerEnd;private onLostPointerCapture;private stopDragging;private onKeyDown;private get separatorLabel();private resizeValueText;private get ariaBounds();render():TemplateResult;}declare global{interface HTMLElementTagNameMap{'lr-split-panel':LyraSplitPanel;}}