import { EventEmitter } from '@angular/core'; import { Ng2VkEnterEvent } from '../models/key-event.model'; import { IQwertyKeyboard, Ng2VkCustomKeyboardModel } from '../models/qwerty-keyboard.model'; import { BehaviorSubject, Observable } from 'rxjs'; export declare class Ng2VkService { /** * Color theme of keyboard */ private _themeColor; /** * Animation state of keyboard */ private _isAnimating; /** * Ope state of keyboard */ private _opened; /** * Model of keyboard keys */ private _keyboardModel; /** * Key Press Strem * * Emitting Ng2VkKeyEvent object into input directives */ keyPress$: EventEmitter; shift: boolean; alt: boolean; altShift: boolean; /** * Focus Stream * * Emitting void event to focus active input */ focus$: EventEmitter; /** * Selection Stream * * Emitting event with direction of selection */ selection$: EventEmitter; /** * Color Change Stream * * Emitting event with new theme color */ colorChange$: BehaviorSubject; /** * Open State Stream * * Stream responsible for open state of keyboard */ openState$: BehaviorSubject; keyboardModel$: BehaviorSubject; /** * Shift * * Boolean value to check if shift is pressed */ private _shift; /** * Alt * * Boolean value to check if alt is pressed */ private _alt; /** * Caps * * Boolean value to check if caps lock is pressed */ private _caps; /** * Position * * Position of the caret in input */ private _position; /** * Enter Action * * Callback to be fired after pressing enter. Work on all * inputs except textarea or inputs with set vkEnter output */ private _enterAction; /** * Key Press * * Emitting keyPress event with keyPress$ * @param key */ keyPress(key: string): void; /** * Shift Press * * Changing next letter to upper case */ shiftPress(): void; /** * Alt Press * * Changing next letter to alternative value */ altPress(): void; /** * Caps Lock Press * * Changing next letters to upper case until caps lock / shift press again */ capsLockPress(): void; /** * Enter Press * * Emitting enter press event with keyPress$ */ enterPress(): void; /** * Arrow Press * * Emmitting left or right arrow press with keyPress$. * Changing positon of caret in input. * @param key */ arrowPress(key: 'left' | 'right'): void; _makeSelection(key: 'left' | 'right'): void; /** * Set Enter Action * * Set callback for enter press action * @param action */ setEnterAction(action: (event?: Ng2VkEnterEvent) => any): void; /** * Get Enter Action * * Returns callback for enter press action */ getEnterAction(): (event?: Ng2VkEnterEvent) => any; /** * Get Open State * * Get open state of keyboard */ getOpenState(): Observable; /** * Open Keyboard * * Open keyboard and set animation state */ openKeyboard(): void; /** * Close Keyboard * * Close keyboard and set animation state */ closeKeyboard(): void; /** * Toggle keyboard * * Open/close keyboard */ toggleKeyboard(): void; /** * Is Animating * * Get animation state of keyboard */ isAnimating(): boolean; /** * Set Theme Color * * Set theme color of keyboard * @param color */ setThemeColor(color: ThemeColors): void; /** * Register Keys * * Register custom letter keys * @param keys */ registerKeys(keys: Ng2VkCustomKeyboardModel): void; /** * Get Keyboard Model */ getKeyboardModel(): Observable; private _mapKeyboard; private _mapLine; private _mapKey; private _altShiftMap; private _altMap; private _shiftMap; private _normalMap; } /** * Available color themes */ export declare type ThemeColors = 'blue' | 'red' | 'green' | 'black' | 'orange' | 'custom';