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 {};