import type Gtk from "gi://Gtk"; import type { PackType } from "../../../enums/gtk3-index"; import type { GjsElement } from "../../gjs-element"; import type { CaseCollectorCallback } from "../element-extenders/map-properties"; type ChildPropertyValue = string | number | boolean | undefined; export type ChildPropertiesProps = { /** * Defines how the element is packed within it's parent. When set to * `END` elements are packed at the end of the parent in reversed * order (i.e. last child will be first one visible when looking * from left to right, or top to bottom). */ "cpt:pack-type"?: PackType; /** * `cpt` stands for `child property`. * * `cpt:*` prefix is used to define Gtk's `child properties`, those * properties do not belong to the element itself, or it's parent, * but rather to the relation between them. * * A typical example of a child property is `pack-type` which is * used to define the packing location of a child inside it's * container. * * `cpt` props are not individually handled by the Element, rather * whatever string of characters you put after `cpt:` will be used * to define a child property, this means that it's possible to * define a child property with an incorrect name and not get any * errors. * * @example * // Assuming you have the following element: * * * // This is what will happen behind the scenes: * parentWidgetOfTheBox.child_set_property( * boxWidget, * "pack-type", * Gtk.PackType.START * ); */ [k: `cpt:${string}`]: ChildPropertyValue; }; export declare const createChildPropsMapper: (getWidget: () => Gtk.Widget, getParent: () => undefined | null | GjsElement) => CaseCollectorCallback; export {};