export declare type LayerStackPriority = 'high' | 'low' | number; export interface LayerStackEntryOptions { item: TItem; priority: LayerStackPriority; tags?: string | string[]; } export interface LayerStackEntry extends LayerStackEntryOptions { id: string; sequence: number; tags: string[]; } export declare type LayerStackEntryWithOptions = TEntryOptions & LayerStackEntry; export declare class LayerStack> { private _entries; private _nextSequence; add(item: TItem, priority?: LayerStackPriority, tags?: string | string[]): TEntryOptions; addEntry(entryOptions: TEntryOptions): LayerStackEntryWithOptions; get entries(): Array>; getEntries(filter: (entry: LayerStackEntryWithOptions) => boolean): LayerStackEntryWithOptions[]; getItems(filter: (entry: LayerStackEntryWithOptions) => boolean): LayerStackEntryWithOptions[]; getItemsByTag(tags: string | string[], matchType?: 'and' | 'or'): LayerStackEntryWithOptions[]; private getItemsFromEntries; get items(): TItem[]; }