import * as i0 from '@angular/core';
import { OnInit, AfterViewInit } from '@angular/core';
import * as i1 from '@angular/cdk/menu';
/**
* Directive to add infotip behavior to a host element (e.g. close the infotip on escape key press).
*
* ### Usage
*
* ```html
*
Infotip title
* Infotip content with custom layout
* ```
*
* ```typescript
* import { Component } from '@angular/core';
* import { InfotipDirective } from '@talenra/ngx-base/infotip';
*
* @Component({
* ...
* hostDirectives: [InfotipDirective],
* })
* export class CustomInfotipComponent {}
* ```
*
* ../../#/infotip
*/
declare class InfotipDirective {
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/**
* Assigned to an element, InfotipAnchor triggers the associated Infotip. InfotipAnchor provides `triggerFor` input
* property. It will trigger the template with a matching id.
*
* ```html
* Infotip
*
*
*
* ```
*
* Important: If you use a custom layout component instead of the library's infotip layout, you need to import
* the CdkMenu directive and add it to the hostDirectives array of the custom layout component.
* This will make sure that the infotip is closed when clicked outside.
*
* ### Import
*
* ```typescript
* import { InfotipAnchorDirective } from '@talenra/ngx-base/infotip';
* ````
*
* @see {@link InfotipLayoutComponent}
*
* ../../#/infotip
*/
declare class InfotipAnchorDirective implements OnInit, AfterViewInit {
/** @internal */
private destroyRef;
/** @internal */
private cdkMenuTrigger;
/** @internal */
private infotipService;
/** @internal */
infotipId: number | undefined;
/** @internal */
ngOnInit(): void;
private handleScroll;
/**
* @internal
*/
ngAfterViewInit(): void;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵdir: i0.ɵɵDirectiveDeclaration;
}
/**
* InfotipLayout provides the default layout used for Infotip content.
*
* InfotipLayout is used to display additional information related to a content (e.g. an icon or a term). It consists of
* a title and a description, which can be used to set the content of the infotip.
*
* The title is used to display a short message to the user while the description typically contains a more detailed
* explanation. InfotipLayout includes a CopyContent button which allows the user to copy the message for further
* processing.
*
* ```html
* Infotip
*
*
*
* ```
*
* **Important:** If you use a custom layout component instead of InfotipLayout, you need to import `InfotipDirective`
* and add it to the `hostDirectives` array of the custom layout component. This will make sure that the custom infotip
* is closed when clicked outside.
*
* ### Import
*
* ```typescript
* import { InfotipLayoutComponent } from '@talenra/ngx-base/infotip';
* ````
*
* @see {@link InfoTipAnchorDirective}
* @see {@link InfoTipDirective}
*
* ../../../#/infotip
*/
declare class InfotipLayoutComponent {
/**
* The title string to be displayed
*/
title: i0.InputSignal;
/**
* The description string to be displayed
*/
description: i0.InputSignal;
protected toCopy: i0.Signal;
static ɵfac: i0.ɵɵFactoryDeclaration;
static ɵcmp: i0.ɵɵComponentDeclaration;
}
export { InfotipAnchorDirective, InfotipDirective, InfotipLayoutComponent };