import { Gtk } from 'astal/gtk4'; import { Binding } from 'astal/binding'; // A mixin class must have a constructor with a single rest parameter of type 'any[]' // eslint-disable-next-line "@typescript-eslint/no-explicit-any" export type MixinParams = any[]; export type BindableChild = Gtk.Widget | Binding; export type BindableProps = { [K in keyof T]: Binding | T[K]; }; export const noImplicitDestroy = Symbol('no no implicit destroy'); export const setChildren = Symbol('children setter method'); export const childType = Symbol('child type'); export const dummyBuilder = new Gtk.Builder(); export type GenericWidget = InstanceType & { [setChildren]: (children: Gtk.Widget[]) => void }; export interface AstalifyProps { css: string child: Gtk.Widget children: Gtk.Widget[] }