import type { AvailableSpace, Compactness, ControlConfig, MenuItemConfig, Placement, RenderContext, ResolvedControlProps, ResolvedControlPropsBase } from "./types"; export type { AvailableSpace, Compactness, Placement, RenderContext, ResolvedControlProps, ResolvedControlPropsBase }; /** Shared padding for interactive menu items (button, toggle, stepper, select, radioGroup). */ export declare const cvaControlMenuItemBase: import("cva").CVAComponent & { variants: unknown; defaultVariants: Omit<{}, never>; }, unknown>; /** Context available to all middleware and resolvers */ export type MiddlewareContext = Readonly<{ renderContext: RenderContext; config: ControlConfig | MenuItemConfig; }>; /** * A middleware function: receives current state, returns modified state. * * Exported for advanced use cases such as providing a custom middleware * stack to `resolveControl`. Most consumers should not need this. */ export type ControlMiddleware = (state: ResolvedControlPropsBase, ctx: MiddlewareContext) => ResolvedControlPropsBase; /** * Runs the full pipeline: initial state -> middleware -> type resolver. * Pure function, no side effects, easily testable. * * Inspired by Floating UI's middleware pattern: * - Cross-cutting middleware (sizing) handles concerns for all control types * - Type-specific resolvers handle logic unique to each control type * - Type resolvers run after middleware and can override any field */ export declare const resolveControl: (config: ControlConfig | MenuItemConfig, renderContext: RenderContext, middleware?: ReadonlyArray) => ResolvedControlProps;