import { type BoxModel } from '@makeswift/controls';
import { CreateBoxArgs } from 'css-box-model';
import { type Action, type UnknownAction } from '../actions';
export type { BoxModel };
export declare function parse(rawString: string): number;
export declare function createBox(boxArgs: CreateBoxArgs): BoxModel;
export declare function getBox(element: Element): BoxModel;
export interface BoxModelHandle {
    getBoxModel(): BoxModel | null;
}
export type Measurable = Element | BoxModelHandle;
export declare function isMeasurable(value: unknown): value is Measurable;
export declare function measure(measurable: Measurable): BoxModel | null;
export type State = {
    measurables: Map<string, Map<string, Measurable>>;
    boxModels: Map<string, Map<string, BoxModel>>;
};
export declare function getInitialState(): State;
export declare function getMeasurables(state: State): Map<string, Map<string, Measurable>>;
export declare function getBoxModels(state: State): Map<string, Map<string, BoxModel>>;
export declare function getBoxModel(state: State, documentKey: string, elementKey: string): BoxModel | null;
export declare function reducer(state: State | undefined, action: Action | UnknownAction): State;
//# sourceMappingURL=box-models.d.ts.map