import type { FlyoutItem } from '../flyout_item.js'; import type { IFlyout } from './i_flyout.js'; export interface IFlyoutInflater { /** * Loads the object represented by the given state onto the workspace. * * Note that this method's interface is identical to that in ISerializer, to * allow for code reuse. * * @param state A JSON representation of an element to inflate on the flyout. * @param flyout The flyout on whose workspace the inflated element * should be created. If the inflated element is an `IRenderedElement` it * itself or the inflater should append it to the workspace; the flyout * will not do so itself. The flyout is responsible for positioning the * element, however. * @returns The newly inflated flyout element. */ load(state: object, flyout: IFlyout): FlyoutItem; /** * Returns the amount of spacing that should follow the element corresponding * to the given JSON representation. * * @param state A JSON representation of the element preceding the gap. * @param defaultGap The default gap for elements in this flyout. * @returns The gap that should follow the given element. */ gapForItem(state: object, defaultGap: number): number; /** * Disposes of the given element. * * If the element in question resides on the flyout workspace, it should remove * itself. Implementers are not otherwise required to fully dispose of the * element; it may be e.g. cached for performance purposes. * * @param element The flyout element to dispose of. */ disposeItem(item: FlyoutItem): void; /** * Returns the type of items that this inflater is responsible for inflating. * This should be the same as the name under which this inflater registers * itself, as well as the value returned by `getType()` on the `FlyoutItem` * objects returned by `load()`. * * @returns The type of items this inflater creates. */ getType(): string; } //# sourceMappingURL=i_flyout_inflater.d.ts.map