import Gtk from "gi://Gtk"; import type { GjsElement } from "../../gjs-element"; import type { DiffedProps } from "../../utils/element-extenders/map-properties"; import { WindowElement } from "../window/window"; import type { ApplicationContext } from "./context"; export type ApplicationOptions = { /** * ID of the application (e.g. "org.gnome.Weather"). * * If you are using `react-gnome` to build the application, you can * just pass the `appId` environment variable. * * @example * import env from "gapp:env"; * * render(, { appId: env.appId }); */ appId: string; }; export declare class ApplicationElement extends Gtk.Application { readonly kind = "APPLICATION"; protected _isAppActive: boolean; protected _rootGjsElement: GjsElement | null; protected _windowList: WindowElement[]; reactContext?: ApplicationContext; constructor(options: ApplicationOptions); runAsync: (args: string[]) => Promise; addWindowToApp(window: WindowElement): void; removeWindowFromApp(window: WindowElement): void; getWindowCount(): number; notifyWillAppendTo(parent: GjsElement): void; appendChild(child: GjsElement): void; updateProps(props: DiffedProps): void; notifyChildWillUnmount(): void; /** * Alias to `ApplicationElement.quit()` inherited from * `Gtk.Application`. */ remove(): void; render(): void; clear(): void; show(): void; hide(): void; diffProps(oldProps: Record, newProps: Record): DiffedProps; vfunc_startup(): void; vfunc_activate(): void; }