import * as i0 from '@angular/core';
import { OnInit } from '@angular/core';
/**
* For binding clicks outside a component.
*
* ```html
*
* ...
*
* ```
*
* ### Import
*
* ```typescript
* import { DevKitModule } from '@talenra/ngx-base/dev-kit';
* ```
*/
declare class ClickOutsideDirective {
/** Trigger for the click outside */
clickOutside: i0.OutputEmitterRef;
private elementRef;
private onClick;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/**
* Prevent click event from bubbeling.
*
* Example usage
*
* @example
*
*
*
*
*
*
* ### Import
*
* ```typescript
* import { ClickStopPropagationDirective } from '@talenra/ngx-base/dev-kit';
* ```
*/
declare class ClickStopPropagationDirective {
/** @internal */
onClick(event: MouseEvent): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/**
* Support double click event. Double click is catched with `doubleClick`. Single clicks can still be catched with
* `singleClick`. Note that single clicks are emitted delayed as we have to "wait" for a potential second click event.
* Common `click` event is not masked and can be used side by side with `singleClick` and `doubleClick`.
*
* ```html
* ...
* ```
*
* ### Import
*
* ```typescript
* import { DoubleClickDirective } from '@talenra/ngx-base/dev-kit';
* ```
*/
declare class DoubleClickDirective implements OnInit {
/**
* Delay in milliseconds to wait for a second click event to be considered as double click. Default is 250ms.
*
* ```html
* ...
* ```
*/
doubleClickDelay: i0.InputSignal;
/**
* Emits single click events. Note that single click events are emitted delayed by `doubleClickDelay` milliseconds.
*
* ```html
* ...
* ```
*/
singleClick: i0.OutputEmitterRef;
/**
* Emits double click events.
*
* ```html
* ...
* ```
*/
doubleClick: i0.OutputEmitterRef;
private click$;
private destroyRef;
/** @internal */
ngOnInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/**
* Model of arguments passed to deprecation warning
*/
interface DeprecationWarningArguments {
/** Name of the affected package, e.g. @talenra/ngx-base */
packageName?: string;
/** Name of the affected submodule, e.g. 'form-field' for import @talenra/ngx-base/form-field */
submodule?: string;
/** Name of the affected class. Hint: use `this.constructor.name` for dynamic classes. */
className?: string;
/** Name of the affected member (typically a property or method) */
member?: string;
/** Instructions for the user. What needs to be done? e.g. "Use xy instead." */
instructions?: string;
}
/**
* Print a deprecation warning to the console.
*
* @internal
*/
declare const deprecationWarning: (args: DeprecationWarningArguments) => void;
/**
* Generate and return a random UUID
*
* s. https://stackoverflow.com/a/2117523/5325012
*/
declare function guid(): string;
/**
* Values returned by the `getPlatform` function.
*
* ### Import
*
* ```typescript
* import { Platform } from '@talenra/ngx-base/dev-kit';
* ```
*/
declare const Platform: {
readonly Linux: "linux";
readonly MacOS: "macos";
readonly Windows: "windows";
readonly Unknown: "unknown";
};
/**
* Type of values returned by the `getPlatform` function.
*
* ### Import
*
* ```typescript
* import { TPlatform } from '@talenra/ngx-base/dev-kit';
* ```
*/
type TPlatform = (typeof Platform)[keyof typeof Platform];
/**
* Returns the platform/os the user is running on.
*
* Used to align the app's behavior with the user's expectations (e.g. keyboard shortcuts).
*
* ```typescript
* import { getPlatform } from '@talenra/ngx-base/dev-kit';
* console.log(`running on ${getPlatform()}`);
* ```
*/
declare function getPlatform(): TPlatform;
export { ClickOutsideDirective, ClickStopPropagationDirective, DoubleClickDirective, Platform, deprecationWarning, getPlatform, guid };
export type { DeprecationWarningArguments, TPlatform };