import { ChangeDetectorRef, EventEmitter, NgZone, OnDestroy, OnInit, QueryList, Renderer2 } from '@angular/core';
import { Emoji, EmojiCategory, EmojiData, EmojiEvent } from '@ctrl/ngx-emoji-mart/ngx-emoji';
import { CategoryComponent } from './category.component';
import { EmojiFrequentlyService } from './emoji-frequently.service';
import { PreviewComponent } from './preview.component';
import { SearchComponent } from './search.component';
import * as i0 from "@angular/core";
export declare class PickerComponent implements OnInit, OnDestroy {
    private ngZone;
    private renderer;
    private ref;
    private frequently;
    private platformId;
    perLine: number;
    totalFrequentLines: number;
    i18n: any;
    style: any;
    title: string;
    emoji: string;
    darkMode: boolean;
    color: string;
    hideObsolete: boolean;
    /** all categories shown */
    categories: EmojiCategory[];
    /** used to temporarily draw categories */
    activeCategories: EmojiCategory[];
    set: Emoji['set'];
    skin: Emoji['skin'];
    /** Renders the native unicode emoji */
    isNative: Emoji['isNative'];
    emojiSize: Emoji['size'];
    sheetSize: Emoji['sheetSize'];
    emojisToShowFilter?: (x: string) => boolean;
    showPreview: boolean;
    emojiTooltip: boolean;
    autoFocus: boolean;
    custom: any[];
    hideRecent: boolean;
    imageUrlFn: Emoji['imageUrlFn'];
    include?: string[];
    exclude?: string[];
    notFoundEmoji: string;
    categoriesIcons: {
        [key: string]: string;
    };
    searchIcons: {
        [key: string]: string;
    };
    useButton: boolean;
    enableFrequentEmojiSort: boolean;
    enableSearch: boolean;
    showSingleCategory: boolean;
    virtualize: boolean;
    virtualizeOffset: number;
    recent?: string[];
    emojiClick: EventEmitter<any>;
    emojiSelect: EventEmitter<any>;
    skinChange: EventEmitter<1 | 2 | 4 | 3 | 5 | 6>;
    private scrollRef;
    previewRef?: PreviewComponent;
    searchRef?: SearchComponent;
    categoryRefs: QueryList<CategoryComponent>;
    scrollHeight: number;
    clientHeight: number;
    clientWidth: number;
    selected?: string;
    nextScroll?: string;
    scrollTop?: number;
    firstRender: boolean;
    previewEmoji: EmojiData | null;
    animationFrameRequestId: number | null;
    NAMESPACE: string;
    measureScrollbar: number;
    RECENT_CATEGORY: EmojiCategory;
    SEARCH_CATEGORY: EmojiCategory;
    CUSTOM_CATEGORY: EmojiCategory;
    private scrollListener;
    backgroundImageFn: Emoji['backgroundImageFn'];
    constructor(ngZone: NgZone, renderer: Renderer2, ref: ChangeDetectorRef, frequently: EmojiFrequentlyService, platformId: string);
    ngOnInit(): void;
    ngOnDestroy(): void;
    setActiveCategories(categoriesToMakeActive: Array<EmojiCategory>): void;
    updateCategoriesSize(): void;
    handleAnchorClick($event: {
        category: EmojiCategory;
        index: number;
    }): void;
    categoryTrack(index: number, item: any): any;
    handleScroll(noSelectionChange?: boolean): void;
    handleSearch($emojis: any[] | null): void;
    handleEnterKey($event: Event, emoji?: EmojiData): void;
    handleEmojiOver($event: EmojiEvent): void;
    handleEmojiLeave(): void;
    handleEmojiClick($event: EmojiEvent): void;
    handleSkinChange(skin: Emoji['skin']): void;
    getWidth(): string;
    private cancelAnimationFrame;
    static ɵfac: i0.ɵɵFactoryDeclaration<PickerComponent, never>;
    static ɵcmp: i0.ɵɵComponentDeclaration<PickerComponent, "emoji-mart", never, { "perLine": { "alias": "perLine"; "required": false; }; "totalFrequentLines": { "alias": "totalFrequentLines"; "required": false; }; "i18n": { "alias": "i18n"; "required": false; }; "style": { "alias": "style"; "required": false; }; "title": { "alias": "title"; "required": false; }; "emoji": { "alias": "emoji"; "required": false; }; "darkMode": { "alias": "darkMode"; "required": false; }; "color": { "alias": "color"; "required": false; }; "hideObsolete": { "alias": "hideObsolete"; "required": false; }; "categories": { "alias": "categories"; "required": false; }; "activeCategories": { "alias": "activeCategories"; "required": false; }; "set": { "alias": "set"; "required": false; }; "skin": { "alias": "skin"; "required": false; }; "isNative": { "alias": "isNative"; "required": false; }; "emojiSize": { "alias": "emojiSize"; "required": false; }; "sheetSize": { "alias": "sheetSize"; "required": false; }; "emojisToShowFilter": { "alias": "emojisToShowFilter"; "required": false; }; "showPreview": { "alias": "showPreview"; "required": false; }; "emojiTooltip": { "alias": "emojiTooltip"; "required": false; }; "autoFocus": { "alias": "autoFocus"; "required": false; }; "custom": { "alias": "custom"; "required": false; }; "hideRecent": { "alias": "hideRecent"; "required": false; }; "imageUrlFn": { "alias": "imageUrlFn"; "required": false; }; "include": { "alias": "include"; "required": false; }; "exclude": { "alias": "exclude"; "required": false; }; "notFoundEmoji": { "alias": "notFoundEmoji"; "required": false; }; "categoriesIcons": { "alias": "categoriesIcons"; "required": false; }; "searchIcons": { "alias": "searchIcons"; "required": false; }; "useButton": { "alias": "useButton"; "required": false; }; "enableFrequentEmojiSort": { "alias": "enableFrequentEmojiSort"; "required": false; }; "enableSearch": { "alias": "enableSearch"; "required": false; }; "showSingleCategory": { "alias": "showSingleCategory"; "required": false; }; "virtualize": { "alias": "virtualize"; "required": false; }; "virtualizeOffset": { "alias": "virtualizeOffset"; "required": false; }; "recent": { "alias": "recent"; "required": false; }; "backgroundImageFn": { "alias": "backgroundImageFn"; "required": false; }; }, { "emojiClick": "emojiClick"; "emojiSelect": "emojiSelect"; "skinChange": "skinChange"; }, never, never, true, never>;
}
