import { Client, Registry, Resource, WlDataDeviceRequests, WlDataDeviceResource, WlDataSourceResource, WlSeatRequests, WlSeatResource, WlSurfaceResource } from 'westfield-runtime-server'; import { DesktopSurface } from './Desktop'; import { AxisEvent, ButtonEvent, CompositorSeat, KeyEvent, nrmlvo } from './index'; import { Keyboard, KeyboardGrab } from './Keyboard'; import { Pointer, PointerDrag, PointerGrab } from './Pointer'; import Session from './Session'; import Surface from './Surface'; import Touch from './Touch'; import { DataSource } from './DataSource'; export declare enum KeyboardModifier { MODIFIER_CTRL = 1, MODIFIER_ALT = 2, MODIFIER_SUPER = 4, MODIFIER_SHIFT = 8 } export declare enum KeyboardLocks { NUM_LOCK = 1, CAPS_LOCK = 2 } export declare type ButtonBinding = { button: ButtonEvent['buttonCode']; modifiers: KeyboardModifier; handler: (pointer: Pointer, event: ButtonEvent) => void; }; export declare class PopupGrab implements KeyboardGrab, PointerGrab { readonly seat: Seat; readonly keyboard: Keyboard; readonly pointer: Pointer; client?: Client | undefined; initialUp: boolean; surfaces: DesktopSurface[]; private constructor(); static create(seat: Seat): PopupGrab; axis(event: AxisEvent): void; button(event: ButtonEvent): void; cancel(): void; focus(): void; motion(event: ButtonEvent): void; frame(): void; key(event: KeyEvent): void; modifiers(serial: number, modsDepressed: number, modsLatched: number, modsLocked: number, group: number): void; getTopmostDesktopSurface(): DesktopSurface | undefined; addSurface(surface: DesktopSurface): void; removeSurface(surface: DesktopSurface): void; } export declare class Seat implements WlSeatRequests, CompositorSeat, WlDataDeviceRequests { readonly session: Session; dragResourceList: WlDataDeviceResource[]; readonly hasTouch: boolean; serial: number; readonly pointer: Pointer; readonly keyboard: Keyboard; readonly touch?: Touch; needFocusInit: boolean; savedKbdFocus?: Surface; readonly popupGrab: PopupGrab; selectionDataSource?: DataSource; selectionListeners: (() => void)[]; buttonBindings: ButtonBinding[]; focusedSurface?: DesktopSurface; activationListeners: ((surface: Surface) => void)[]; private global?; private readonly _seatName; private selectionSerial; private modifierState; private readonly selectionDataSourceDestroyListener; private constructor(); static create(session: Session): Seat; focusSurfaceDestroyListener: () => void; savedKbdFocusListener: () => void; registerGlobal(registry: Registry): void; unregisterGlobal(): void; bindClient(client: Client, id: number, version: number): void; nextSerial(): number; getPointer(resource: WlSeatResource, id: number): void; getKeyboard(resource: WlSeatResource, id: number): void; getTouch(resource: WlSeatResource, id: number): void; release(resource: Resource): void; startDrag(resource: WlDataDeviceResource, sourceResource: WlDataSourceResource | undefined, originResource: WlSurfaceResource, iconResource: WlSurfaceResource | undefined, serial: number): void; setSelection(resource: WlDataDeviceResource, sourceResource: WlDataSourceResource | undefined, serial: number): void; setSelectionInternal(source: DataSource | undefined, serial: number): void; private sendSelection; dataDeviceSetKeyboardFocus(): void; notifyMotion(event: ButtonEvent): void; notifyButton(event: ButtonEvent): void; notifyAxis(event: AxisEvent): void; notifyFrame(): void; notifyModifiers(serial: number): void; notifyUpdateKeymap(nrmlvo: nrmlvo): void; notifyKey(event: KeyEvent): void; setKeyboardFocus(desktopSurface: DesktopSurface): void; notifyKeyboardFocusOut(): void; notifyKeyboardFocusIn(): void; popupGrabStart(client: Client, serial: number): boolean; popupGrabEnd(): void; endDrag(drag: PointerDrag): void; dropFocus(): void; private emitCapabilities; private emitName; private destroySelectionDataSource; private updateKeymap; private updateModifierState; private gainFocus; private activateNextFocus; private runButtonBinding; }