import { QueryList, ChangeDetectorRef, ElementRef, EventEmitter, AfterViewInit, Renderer2, OnInit } from '@angular/core';
import { NgControl } from '@angular/forms';
import { Observable, Subject } from 'rxjs';
import { GasSelectOptionComponent } from '../option/gas-select-option.component';
import { GasSelect } from '../gas-select.namespace';
import { GasFormBaseComponent } from '../../gas-form-base-component';
import { GasBageType } from '../../../layout/gas-badge/gas-badge.interface';
import { GasIcon } from '../../../utils/gas-icons/icon/gas-icon.namespace';
import { GasColor } from '../../../core/colors/color.namespace';
/**
* @description Селектор
*
* @example
*
*
*
*/
export declare class GasSelectComponent extends GasFormBaseComponent implements OnInit, AfterViewInit {
changeDetectorRef: ChangeDetectorRef;
elementRef: ElementRef;
renderer: Renderer2;
ngControl: NgControl;
set label(labelText: string);
get label(): string;
get placeholder(): string;
set tip(tipText: string);
nativePlaceholder: string | null;
multi: string | boolean;
isSearch: string | boolean;
/** Скрывает блочную структуру у label и tip/error, по умолчанию место под них остается, чтоб при появлении они не двигали блок */
hideAll: string | boolean;
loading: string | boolean;
selectType: 'default' | 'icon';
clearable: boolean;
selectIcon: GasIcon.Icons | string;
selectIconColor: GasColor.IconColorClass | string;
onlySelected: boolean;
error: string;
allSelected: EventEmitter;
options: QueryList;
fieldRef: ElementRef;
valueRef: ElementRef;
activateEmit$: EventEmitter;
closeEmit$: EventEmitter;
resetEmit$: EventEmitter;
get selectedTitle(): string;
get badgeTheme(): GasBageType;
isNeedLabel: boolean;
tip$: Observable;
label$: Observable;
get mappedOptions(): GasSelect.Option[];
get activeOptions(): string[] | number[];
get allOptionsActive(): boolean;
isOpenedDropdown: boolean;
changeSubject$: Subject;
private tipSubject$;
private labelSubject$;
private breakpointIndex;
get showError(): boolean;
constructor(changeDetectorRef: ChangeDetectorRef, elementRef: ElementRef, renderer: Renderer2, ngControl: NgControl);
ngOnInit(): void;
ngAfterViewInit(): void;
hasValue(): boolean;
writeValue(value: unknown): void;
getTitle(value: string | number): string;
private initOptions;
}