import { WlObject } from 'westfield-runtime-common'; import { ClientMessageEvent, TIMESTAMP } from 'xtsb'; import { Point } from '../math/Point'; import Output from '../Output'; import Session from '../Session'; import Surface from '../Surface'; import XWaylandShellSurface from './XWaylandShellSurface'; import { XWindowFrame } from './XWindowFrame'; import { XWindowManager } from './XWindowManager'; declare enum IcccmInputModel { LOCAL = 0, PASSIVE = 1, GLOBAL = 2, NONE = 3 } interface Hints { flags: number; input: number; initialState: number; iconPixmap: number; iconWindow: number; iconX: number; iconY: number; iconMask: number; windowGroup: number; } interface SizeHints { flags: number; x: number; y: number; width: number; height: number; minWidth: number; minHeight: number; maxWidth: number; maxHeight: number; widthInc: number; heightInc: number; minAspect: { x: number; y: number; }; maxAspect: { x: number; y: number; }; baseWidth: number; baseHeight: number; winGravity: number; } interface MotifWmHints { flags: number; functions: number; decorations: number; inputMode: number; status: number; } export declare class XWindow { wm: XWindowManager; id: number; overrideRedirect: boolean; x: number; y: number; width: number; height: number; readonly session: Session; class: string; decorate: number; deleteWindow: boolean; frameId: number; fullscreen: boolean; hasAlpha: boolean; machine: string; maximizedHorizontal: boolean; maximizedVertical: boolean; name: string; pid: number; type: number; propertiesDirty: boolean; positionDirty: boolean; mapRequestX: number; mapRequestY: number; didDouble: boolean; lastButtonTime: number; savedHeight?: number; savedWidth?: number; surface?: Surface; surfaceId?: number; surfaceDestroyListener?: (surfaceResource: WlObject) => void; frame?: XWindowFrame; sizeHints?: SizeHints; motifHints?: MotifWmHints; hints?: Hints; shsurf?: XWaylandShellSurface; legacyFullscreenOutput?: Output; transientFor?: XWindow; configureTaskRegistration?: () => void; repaintRegistration?: () => void; frameExtentsHint: boolean; takeFocus: boolean; private blackGraphicsContext?; constructor(wm: XWindowManager, id: number, overrideRedirect: boolean, x: number, y: number, width: number, height: number, session: Session); inputModel(): IcccmInputModel; setNetWmState(): void; scheduleRepaint(): void; /** Control Xwayland wl_surface.commit behaviour * * This function sets the "_XWAYLAND_ALLOW_COMMITS" property of the frame window * (not the content window!) to allow. * * If the property is set to true, Xwayland will commit whenever it likes. * If the property is set to false, Xwayland will not commit. * If the property is not set at all, Xwayland assumes it is true. * * @param allow Whether Xwayland is allowed to wl_surface.commit for the window. */ setAllowCommits(allow: boolean): void; readProperties(): Promise; getChildPosition(): { x: number; y: number; }; createFrame(): Promise; handleMoveResize(event: ClientMessageEvent): void; handleState(event: ClientMessageEvent): void; isMaximized(): boolean; setWmState(state: number): void; setVirtualDesktop(desktop: number): void; handleSurfaceId(event: ClientMessageEvent): Promise; xServerMapShellSurface(surface: Surface): Promise; sendPosition({ x, y }: Point): void; configureFrame(): void; setToplevel(): void; sendFullscreenConfigureNotify(): void; sendConfigureNotify(x: number, y: number): void; destroy(): void; close(time: TIMESTAMP): void; legacyFullscreen(): Output | undefined; handleRequestFrameExtends(event: ClientMessageEvent): void; setFrameExtents(): void; private setPendingStateOverrideRedirect; private doRepaint; private getFrameSize; private drawDecorations; private setPendingState; private sendConfigure; private isTypeInactive; private isPositioned; private configure; } export {};