import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
import { AfterContentInit, ChangeDetectorRef, ElementRef, EventEmitter, QueryList, TemplateRef } from '@angular/core';
import { TsOptgroupComponent, TsOptionComponent } from '@terminus/ui/option';
/**
* Event object that is emitted when a {@link TsOptionComponent} is selected
*/
export declare class TsSelectionListPanelSelectedEvent {
source: TsSelectionListPanelComponent;
option: TsOptionComponent;
constructor(source: TsSelectionListPanelComponent, option: TsOptionComponent);
}
/**
* The panel used to display selection list {@link TsOptionComponent}s
*
* @example
*
*/
export declare class TsSelectionListPanelComponent implements AfterContentInit {
private changeDetectorRef;
elementRef: ElementRef;
/**
* Manages active item in option list based on key events
*
* NOTE: {@link TsSelectionListTriggerDirective} needs access.
*/
keyManager: ActiveDescendantKeyManager;
/**
* Whether the panel should be visible
*/
showPanel: boolean;
/**
* Define the default component ID
*/
readonly uid: string;
/**
* Return the panel's scrollTop
*
* @returns The scrollTop number
*/
get scrollTop(): number;
/**
* Set the panel scrollTop
*
* This allows us to manually scroll to display options above or below the fold, as they are not actually being focused when active.
*
* @param scrollTop - The number of pixels to move
*/
set scrollTop(scrollTop: number);
/**
* Access the template. Used by {@link TsSelectionListTriggerDirective}
*/
template: TemplateRef;
/**
* Access the element for the panel containing the options
*/
panel: ElementRef;
/**
* Whether the panel is open
*/
isOpen: boolean;
/**
* Function that maps an option's control value to its display value in the trigger
*/
displayWith: ((value: any) => string) | null;
/**
* Define an ID for the component
*
* @param value
*/
set id(value: string);
get id(): string;
protected _id: string;
/**
* Access the list of option groups
*
* NOTE: Since we are nested so deep, the query selectors can't seem to find these components. So now we are letting the parent pass them
* in explicitly.
*/
optionGroups: QueryList;
/**
* Access the list of options
*
* NOTE: Since we are nested so deep, the query selectors can't seem to find these components. So now we are letting the parent pass them
* in explicitly.
*/
options: QueryList;
/**
* Event that is emitted when the panel is closed
*/
readonly closed: EventEmitter;
/**
* Event that is emitted when the panel is opened
*/
readonly opened: EventEmitter;
/**
* Event that is emitted whenever an option from the list is selected
*/
readonly optionSelected: EventEmitter;
constructor(changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef);
/**
* Set up
*/
ngAfterContentInit(): void;
/**
* Emit the `select` event
*
* @param option
*/
emitSelectEvent(option: TsOptionComponent): void;
/**
* Set the visibility of the panel based on whether options exist
*/
setVisibility(): void;
}