/** * Normalizes the public direction value to a supported drawer direction. * @param {string|null|undefined} value Configured direction. * @returns {'left'|'right'|'bottom'} A supported direction. */ export function normalizeDrawerDirection(value: string | null | undefined): "left" | "right" | "bottom"; /** * Resolves the direction currently used to render the component. The legacy * mobile-presentation API is intentionally kept at this boundary so the rest * of the component can work with one direction model. * @param {object} options Presentation options. * @param {string|null|undefined} options.direction Configured drawer direction. * @param {string|null|undefined} options.mobilePresentation Legacy mobile presentation. * @param {string|number|null|undefined} options.mobileBreakPoint Legacy breakpoint. * @param {number} options.viewportWidth Current viewport width. * @returns {'left'|'right'|'bottom'} Effective rendering direction. */ export function resolveDrawerDirection({ direction, mobilePresentation, mobileBreakPoint, viewportWidth, }: { direction: string | null | undefined; mobilePresentation: string | null | undefined; mobileBreakPoint: string | number | null | undefined; viewportWidth: number; }): "left" | "right" | "bottom"; /** * Returns whether a direction uses horizontal drawer geometry. * @param {string} direction Value selected by the presentation resolver. * @returns {boolean} True for left and right. */ export function isHorizontalDrawerDirection(direction: string): boolean; /** * Resolves the responsive side variant without mutating the public attribute. * Bottom drawers always use overlay geometry. * @param {object} options Inputs needed to choose flow or overlay geometry. * @param {string} options.direction Effective drawer direction. * @param {string} options.variant Configured variant. * @param {string|number|null|undefined} options.screenBreakPoint Side breakpoint. * @param {number} options.viewportWidth Current viewport width. * @returns {'in-place'|'over'} Effective variant. */ export function resolveDrawerVariant({ direction, variant, screenBreakPoint, viewportWidth, }: { direction: string; variant: string; screenBreakPoint: string | number | null | undefined; viewportWidth: number; }): "in-place" | "over"; /** * Resolves the frame used by a bottom drawer. A directly configured bottom * drawer belongs to its surrounding container by default. The old responsive * bottom-sheet adapter keeps its historical viewport default. * @param {object} options Scope inputs. * @param {string|null|undefined} options.scope Preferred public scope. * @param {string|null|undefined} options.legacyScope Legacy sheet scope. * @param {string|null|undefined} options.direction Configured direction. * @returns {'container'|'parent'|'viewport'} Effective bottom drawer scope. */ export function resolveDrawerScope({ scope, legacyScope, direction }: { scope: string | null | undefined; legacyScope: string | null | undefined; direction: string | null | undefined; }): "container" | "parent" | "viewport"; /** * Resolves a configured bottom drawer height against the current viewport. * @param {string|number|null|undefined} value CSS-like height value. * @param {number} fallback Fallback pixel value. * @param {object} viewport Viewport dimensions. * @param {number} viewport.width Horizontal reference used by `vw` values. * @param {number} viewport.height Vertical reference used by `vh` and `%` values. * @returns {number} Resolved pixel height. */ export function resolveDrawerHeight(value: string | number | null | undefined, fallback: number, viewport: { width: number; height: number; }): number; /** * Clamps a drawer size between its configured limits. * @param {number} value Requested size. * @param {number} min Minimum size. * @param {number} max Maximum size. * @returns {number} Clamped size. */ export function clampDrawerSize(value: number, min: number, max: number): number; export const DRAWER_DIRECTIONS: Readonly<{ LEFT: "left"; RIGHT: "right"; BOTTOM: "bottom"; }>; export const DRAWER_VARIANTS: Readonly<{ IN_PLACE: "in-place"; OVER: "over"; }>; export const DRAWER_SCOPES: Readonly<{ CONTAINER: "container"; PARENT: "parent"; VIEWPORT: "viewport"; }>;